python 類屬性與例項屬性的作用域與定義

2021-08-02 09:47:25 字數 1019 閱讀 1601

>>>

class

student

(object)

:     #student類的定義

...

name =

'student'

...>>>

s = student()                  

# 建立例項s

>>>

print(s.name)                 

# 列印name屬性,因為例項並沒有name屬性,所以會繼續查詢class的name屬性

student

>>>

print(student.name)                     

# 列印類的name屬性

student

>>>

s.name =

'michael'

# 給例項繫結name屬性

>>>

print(s.name)                               

# 由於例項屬性優先順序比類屬性高,因此,它會遮蔽掉類的name屬性

michael

>>>

print(student.name)                    

# 但是類屬性並未消失,用student.name仍然可以訪問

student

>>>

dels.name                                 

# 如果刪除例項的name屬性

>>>

print(s.name)                             

# 再次呼叫s.name,由於例項的name屬性沒有找到,類的name屬性就顯示出來了

student

說明:在編寫程式的時候,千萬不要把例項屬性和類屬性使用相同的名字,因為相同名稱的例項屬性將遮蔽掉類屬性,但是當你刪除例項屬性後,再使用相同的名稱,訪問到的將是類屬性。

Python 類屬性與例項屬性

python在 init self 方法中定義的屬性為例項屬性,並且python的例項可以動態地增加例項屬性 直接跟在類名後邊定義的屬性都預設是類屬性 類似於c 的static變數 要明白雷和例項都是命名空間。類是類屬性的命名空間,例項則是例項屬性的命名空間。例項屬性能夠在名稱訪問 搜尋 中覆蓋類屬...

Python例項屬性與類屬性

class foo object version 1.0 f foo print foo.version 1.0 print f.version 1.0 foo.version 0.1 print foo.version 1.1 print f.version 1.1 f.version 0.1 p...

Python類屬性與例項屬性

類屬性為所有例項擁有,例項屬性為單個例項擁有class cls object count 0 count 0def init self cls.count cls.count 1 self.count self.count 1 p cls print 類屬性 d p.count print 例項屬性...