ホームページ > バックエンド開発 > Python チュートリアル > クラスメソッドはPythonのプロパティを使用できますか?

クラスメソッドはPythonのプロパティを使用できますか?

Barbara Streisand
リリース: 2024-11-28 09:01:15
オリジナル
339 人が閲覧しました

Can Class Methods Use Properties in Python?

クラス メソッドでのプロパティの使用

質問:

property() 関数を併用することは可能ですか? @classmethod で修飾された関数デコレータ?

答え:

Python 3.8 以降:

Python 3.8 以前の場合、推奨される解決策は次のとおりです。プロパティはクラスではなくインスタンスで動作するため、クラスではなくメタクラスでプロパティを作成します。以下に例を示します:

class Foo(object):
    _var = 5
    class __metaclass__(type):  # Python 2 syntax for metaclasses
        def var(cls):
            return cls._var
        def var(cls, value):
            cls._var = value
# Python 3 syntax for metaclasses
class Meta(type):
    ...
class Foo(metaclass=Meta):
    ...
ログイン後にコピー

Python 3.9 以降:

Python 3.9 以降では、@classmethod と @property デコレーターの両方を組み合わせて使用​​できます。以下に例を示します。

class Foo(object):
    _var = 5    
    @classmethod
    @property
    def var(cls):
        return cls._var
    @var.setter
    def var(cls, value):
        cls._var = value
ログイン後にコピー

この例では、プロパティ メソッドはクラス自体に作成されます。

以上がクラスメソッドはPythonのプロパティを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート