1. 程式人生 > >python 類成員知識點學習的一個坑(初學者,大神請繞行)

python 類成員知識點學習的一個坑(初學者,大神請繞行)

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 類成員知識點學習的一個坑(初學者,大神請繞行)