0
可能是一個愚蠢的問題,但我更習慣的Java和喜歡,因此不知道爲什麼我能做到這一點:爲什麼我允許訪問一個不可變的變量?
class A:
def __init__(self):
pass
a = A()
a.description = "whyyy"
print a.description
而且它打印出來whyyy
,而不是給我一個錯誤。
可能是一個愚蠢的問題,但我更習慣的Java和喜歡,因此不知道爲什麼我能做到這一點:爲什麼我允許訪問一個不可變的變量?
class A:
def __init__(self):
pass
a = A()
a.description = "whyyy"
print a.description
而且它打印出來whyyy
,而不是給我一個錯誤。
變量會被分配一個值,並在它們超出範圍時自動銷燬。
對於對象,您可以在運行時動態添加新字段。請注意,這不會改變類的描述。只有當前的實例。
class A:
def __init__(self):
pass
a = A()
a.description = "whyyy"
print a.description
b = A()
print b.description # Should return an error
由於Python對象是動態的 - 它們不需要遵循嚴格的模式。
創建類的實例會爲您提供一個已經定義了某些東西的對象,但您可以動態地將其他東西添加到該實例中;您不受限於原始類定義。