我在這裏有一些單元轉換程序的代碼;它會拋出一個NameError
,因爲Python的繼承順序。Python的類變量和繼承
class _Units :
_metric_unit_names = {'metric'}
_standard_unit_names = {'standard'}
class TemperatureUnits (_Units) :
_metric_unit_names.update({'celsius', 'c'})
_standard_unit_names.update({'fahrenheit', 'f'})
TemperatureUnits()
我想知道這種情況下最好的技術是什麼。我可以製作_metric_unit_names
和_standard_unit_names
實例變量,但是在每個實例上創建一個新集合似乎很浪費。在這種特殊情況下,共享行爲似乎也是最佳的。
什麼讓你相信你需要多個類,甚至在這裏繼承,當同一類的多個實例可能是足夠的?在這裏沒有顯示的子類中是否存在一些行爲? – 2013-02-26 00:04:22