У меня есть код для программы преобразования единиц; он выдает 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
переменными экземпляра, но сделать новый набор для каждого экземпляра кажется расточительным. Также в этой конкретной ситуации оптимальное поведение в целом кажется оптимальным.
Что заставляет вас думать, что вам нужно несколько классов и даже наследование здесь, когда, вероятно, будет достаточно нескольких экземпляров одного и того же класса? Есть ли какое-то поведение в подклассах, которые вы здесь не показывали? –