Python には C# の get set 構文に似たプロパティ構文があり、その関数には次の 2 つの点があります:
プロパティの getter メソッドと setter メソッドを実装する。以下の 2 つの点に焦点を当てて説明します:
クラス メソッドを読み取り専用属性として設定します
まず、次のコードを読んでください
class Book(object): def __init__(self, title, author, pub_date): self.title = title self.author = author self.pub_date = pub_date @property def des_message(self): return u'书名:%s, 作者:%s, 出版日期:%s' % (self.title, self.author, self.pub_date)
このコードでは、プロパティをデコレータとして使用して des_message 関数を変更し、そのこの関数は、関数 des_message をクラスのプロパティに変換するもので、読み取り専用です。効果は次のとおりです。
上の図に示すように、メソッドはプロパティになり、プロパティにアクセスすることでアクセスできます。ただし、その値を変更すると、AttributeError エラーが報告されます。これは読み取り専用です属性の getter メソッドと setter メソッドを実装します
次に、次のコードを見てください:
class Array(object): def __init__(self, length=0, base_index=0): assert length >= 0 self._data = [None for i in xrange(length)] self._base_index = base_index def get_base_index(self): return self._base_index def set_base_index(self, base_index): self._base_index = base_index base_index = property( fget=lambda self: self.get_base_index(), fset=lambda self, value: self.set_base_index(value) )
ここで、base_index 属性を設定します。 Property を使用する class Array は、base_index の fget および fset 関数を実装します。その効果は次のとおりです。
上の図に示すように、base_index は読み取りおよび書き込み可能です。最後に、
プロパティはPythonの優れた構文機能であり、プログラミングでは頻繁に使用する必要があります。
以上がPythonのプロパティ構文の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。