由於python沒有常量的概念,如果更新'常量'屬性,是否有可能引發異常?怎麼樣?在python中更新'常量'屬性引發異常
class MyClass():
CLASS_CONSTANT = 'This is a constant'
var = 'This is a not a constant, can be updated'
#this should raise an exception
MyClass.CLASS_CONSTANT = 'No, this cannot be updated, will raise an exception'
#this should not raise an exception
MyClass.var = 'updating this is fine'
#this also should raise an exception
MyClass().CLASS_CONSTANT = 'No, this cannot be updated, will raise an exception'
#this should not raise an exception
MyClass().var = 'updating this is fine'
任何嘗試將CLASS_CONSTANT更改爲類屬性或實例屬性都會引發異常。
將var更改爲類屬性或實例屬性不應引發異常。
亞歷克斯·馬爾泰利以及螞蟻阿斯瑪的兩個解決方案的工作。我選擇了Alex Martelli的解決方案,因爲它可以在子類中使用,但是一些開發人員也可能更喜歡螞蟻Aasma的風格。 – e70 2009-08-31 23:17:33