class MyClass(object):
next_number = 0
def __init__(self):
self.number = self.next_number
MyClass.next_number += 1
class MyClassA(MyClass):
pass
書き込み以来、6行目のクラス変数を更新するとき、私は打ちにクラス名を強制しています表示されます:すべての派生クラスで新しいクラス変数でPythonのクラス変数の更新
self.__class__.next_number += 1
結果を。クラス名をハードコーディングする方法はありますか?
はまた、5行目に私の代わりに書く必要があります:
self.number = self.__class__.next_number
をnext_numberがクラス変数であることが明らかにします。
なぜこれをやっていますか?代わりに 'self .__ class__'を比較できますか?代わりに 'Enum'を使用できますか? –
あなたはdjangoがそのモデル/フィールドにあるように__new__を使ってそれを扱うことができます –
私はあなたが得ているdownvotesを理解していません。あなたの質問は合法です。私からupvoteを持ってください。 – timgeb