2012-07-01 134 views
0

可能是一個愚蠢的問題,但我更習慣的Java和喜歡,因此不知道爲什麼我能做到這一點:爲什麼我允許訪問一個不可變的變量?

class A: 
    def __init__(self): 
     pass 

a = A() 
a.description = "whyyy" 

print a.description 

而且它打印出來whyyy,而不是給我一個錯誤。

回答

0

變量會被分配一個值,並在它們超出範圍時自動銷燬。

對於對象,您可以在運行時動態添加新字段。請注意,這不會改變類的描述。只有當前的實例。

class A: 
    def __init__(self): 
     pass 

a = A() 
a.description = "whyyy" 

print a.description 

b = A() 

print b.description # Should return an error 
2

由於Python對象是動態的 - 它們不需要遵循嚴格的模式。

創建類的實例會爲您提供一個已經定義了某些東西的對象,但您可以動態地將其他東西添加到該實例中;您不受限於原始類定義。

相關問題