1. 程式人生 > >面向物件的成員

面向物件的成員

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. 私有
  所有以雙下劃線開頭的方法, 變數都是私有內容. 外界無法訪問. 除非你主動暴露這些內容

 

總結: 強化面向物件