У меня есть случай, когда я пытаюсь сделать код, аналогичный приведенному ниже, print 2 вместо 1.
class foo():
_default_val = 1
@classmethod
def print_num(cls, num=_default_val):
print(num)
class foo2(foo):
_default_val = 2
tester = foo2()
tester.print_num()
# 1
Конечно, я мог бы установить num=None
и получить доступ к self._default_val
, если он все ещеNone
, однако я хотел бы знать, есть ли более аккуратный способ достижения этого.
Примечание: я также знаю, что это сработает, если я скопирую и вставлю функцию, но я считаю это плохой практикой, поскольку мне придется сохранять все копии этой функции для каждого внесенного мной изменения