面向物件的成員
阿新 • • 發佈:2018-12-18
1. 成員
在類中能寫的所有內容都是類的成員
2. 變數
1. 例項變數: 由物件去訪問的變數.
2. 類變數. 此時. 這個變數屬於類. 但是物件也可以訪問.
class Person : ouxiang = "科比" # 這個ouxiang變數是類變數 def __init__(self,name,gender,ouxiang): self.name = name self.gender = gender self.ouxiang = ouxiang p = Person("盧本偉","男","周杰倫") p.ouxiang = "嘮嗑" print(p.ouxiang) print(Person.ouxiang)
3. 方法
1. 例項方法: 使用: 物件.方法()
特點: 在宣告的時候. 需要給出self, self必須放在第一個位置
在呼叫的時候. 自動的會把物件傳遞給形參的self
2. 類方法(@classmethod): 類方法是屬於類的.
特點:在宣告的時候需要給出一個能夠接受類名的引數, (self) => cls , 也必須放在引數的第一個
在呼叫的時候. 自動得把xx物件的類傳遞給cls
3. 靜態方法(@staticmethod): 靜態方法也是屬於類的. 靜態方法就好比. 我們在類中定義了一個函式
靜態方法一般和類方法差不多. 使用類名去訪問
4. 屬性
在方法上新增一個@property. 可以把一個方法變成一個屬性. 但是這個屬性不可以被賦值
當我們某一個屬性必須經過計算才能得到結果的時候.
class Person : def __init__(self,name,birth): self.name = name self.birth = birth @property def age(self): # age方法中的返回值,就是類中的屬性值 return 2018 - self.birth g = Person("盧本偉",1993) print(g.age)
5. 私有
所有以雙下劃線開頭的方法, 變數都是私有內容. 外界無法訪問. 除非你主動暴露這些內容
總結: 強化面向物件