Python で静的クラス変数や関数はしっかりとクラス名で2021年09月04日 12時06分06秒

Python にも静的クラス変数や関数がある。関数に関しては、@staticmethod などと、明示的にアノーテーションを付ける事も出来る。

C++ 等では、インスタンス変数ではない、静的クラス変数にも this を持ちいてアクセスが出来る。クラス名を用いたアクセスが正当派。

Python での静的クラス変数や関数はしっかりと、クラス名を用いたアクセスを徹底させた方がいい。self 経由でのアクセスも可能だが、継承されたクラスが基底クラスの関数から基底クラスの静的関数や静的変数に self でアクセスすると、失敗する。

自身のクラスが静的変数や関数にアクセスする時は、self 経由でもクラス名経由でも動いてしまう。self でアクセスしているクラスを継承すると、関数が見付からないエラーになり、四苦八苦した。派生クラスの self では基底クラスの静的変数や関数にアクセス出来ないので、後々苦しむバグになる。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2021/09/04/9419385/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。