python 類成員知識點學習的一個坑(初學者,大神請繞行)
阿新 • • 發佈:2019-03-28
clas cde 應該 有意思 del 一個 錯誤 abc 運行
先來一段程序:
class Foo:
name = "abc"
def __init__(self,age):
self.age = age
print(Foo.name)
Foo.name = "bcd"
print(Foo.name)
Foo.age = 18
print(Foo.age)
x = Foo(20)
print(x.age)
x.age = 25
print(x.age)
print(x.name)
x.name = cde
print(x.name)
print(Foo.name)
print(Foo.age)
運行這段程序會出現錯誤嗎?答案是否定的。
print(Foo.age) 這一句有沒有迷惑你? 用類名訪問普通字段
x.name = cde 這一句有沒有迷惑你?用對象名訪問靜態字段並修改其值
以上兩種情形按理應該是不允許的。為什麽不出錯呢?
作為初學者,迷惑了一下。思考一下,然後恍然大悟。
Foo.age 在這段程序中代表的是一個變量。而不是用類名訪問普通字段。
同樣,x.name 在這段程序中代表的也是一個變量。而不是用對象名訪問靜態字段並修改其值
作為初學者的你,是否也有相同的困惑呢?
覺得挺有意思, 是以為記。
python 類成員知識點學習的一個坑(初學者,大神請繞行)