Python類學習

小半00 2022-07-24 01:22:33 阅读数:59

python

Python類學習

1.1 類和對象

面向過程:面向對象的思想是程序從頭到尾一步步執行。(小程序和小脚本方便)
面向對象:物以聚類,人以群分。
Python設計的特點是:一切皆為類。字符串、列錶、字典等都是類,每當創建一個字符串時,相當於創建了一個類的實例化對象,這個實例化對象就可以使用字符串類的方法。

  • 類:用來描述屬性和方法的集合
  • 方法:類中定義的函數
  • 對象:類的實例化
class myclass: #定義類
def __init__(self):
pass
def printstr(self, str): #方法
print(str)
a = myclass() #對象
a.printstr('he')

1.2 數據成員

1.2.1 私有成員與共有成員

私有成員:私有成員在類的外部不能直接訪問,一般在類的內部進行訪問和操作,或者在類外調用對象的公有成員方法進行訪問。
共有成員:公開使用的,既可以在類的內部,也可以在類的外部進行訪問。
Python中下劃線開頭的變量名字和方法具有特殊含義,尤其是在類的定義中。

  • _xxx:受保護的成員,不能用“from module import ”導入
  • __xxx__:系統定義的特殊成員
  • __xxx私有成員,只有類對象自己能訪問,子類對象不能直接訪問,可以通過"對象名._類名._xxx"特殊方式進行訪問,但是不建議。
1.2.2 數據成員
  • 屬於對象的數據成員:一般在構造方法__init__()中定義,也可以在其他的成員方法中定義。在類內和類外用self為前綴進行訪問,同一個類的不同對象的數據成員之間互不影響。
  • 屬於類的數據成員:屬於類的數據成員是該類所有對象共享的,不屬於任何一個對象,在類定義時,這類數據成員一般不在任何一個成員方法中定義。在類的外部訪問時,可以用self為前綴,也可以用類名為前綴。
class myclass:
price = 100 #定義屬於類的數據成員
def __init__(self):
self.name = 'he' #定義屬於對象的數據成員
a = myclass() #定義類
print(a.price) #調用屬於類的數據成員
print(myclass.price) #調用屬於類的數據成員
print(a.name) #調用屬於屬於對象的數據成員

1.3 方法

  • 實例方法:參數要有self,並且是第一個形參,self參數代錶當前對象,在類外通過對象名調用對象方式時不需要傳入該參數。
  • 類方法:用classmethod來聲明類方法,需要加默認參數cls,類方法使用的時候不需要實例化,可以通過類名和對象名調用。
  • 靜態方法:需要用staticmethod修飾符來聲明,不需要加默認self和cls,不需要實例化,通過類名和對象名調用。
class myclass: #定義類
def ord_print(self): #定義實例方法,至少有一個self
print('這是一個實例方法')
@classmethod
def class_print(cls): #定義類方法,
print('這是一個類方法')
@staticmethod
def static_print():
print('這是一個靜態方法')
a = myclass() #對象
a.ord_print()
a.class_print()
a.static_print()
myclass.class_print()
myclass.static_print()
版权声明:本文为[小半00]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/205/202207240121556380.html