この記事では、主にPythonのプロパティ関数の使い方を紹介し、プロパティ関数の機能、パラメータ、使用法、および関連する操作上の注意点をサンプルの形で分析します。必要な友人はそれを参照してください
この記事の例。 Python でのプロパティ関数の使用法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです:
通常、属性にアクセスして割り当てるときは、クラス (インスタンス) の __dict__
またはデータ記述子を直接処理します。 、などを扱います。しかし、これらのアクセスと値の設定方法を標準化したい場合、1 つは複雑なデータ記述子メカニズムを導入することであり、もう 1 つは軽量のデータ記述子プロトコル関数 Property() であると考えられます。その標準定義は次のとおりです: __dict__
打交道,或者跟数据描述符等在打交道。但是假如我们要规范这些访问和设值方式的话,一种方法是引入复杂的数据描述符机制,另一种恐怕就是轻量级的数据描述符协议函数Property()。它的标准定义是:
+ property(fget=None,fset=None,fdel=None,doc=None)
+ 前面3个参数都是未绑定的方法,所以它们事实上可以是任意的类成员函数
property()函数前面三个参数分别对应于数据描述符的中的__get__
,__set__
,__del__
方法,所以它们之间会有一个内部的与数据描述符的映射。
综上描述,其实property()
函数主要是用来规范化访问类的属性和修改类属性的值的一种方法。
property()
函数可以用0,1,2,3,4个参数来调用,顺序依次是get,set,del,doc,这四个。
property()
+ 最初の 3 つのパラメータは Unbound メソッドですしたがって、実際には任意のクラス メンバー関数にすることができます property() 関数の最初の 3 つのパラメーターは、データ記述子の /code>、 の <code>__get__
と __set____del__
メソッドなので、それらの間にデータ記述子への内部マッピングが存在します。 上記の説明を要約すると、実際には、property()
関数は主にクラス属性へのアクセスを標準化し、クラス属性の値を変更するために使用されます。
property()
関数は、0、1、2、3、4 のパラメーターを使用して呼び出すことができ、その順序は get、set、del、doc です。
property()
実装メソッドは 2 つあります。コードを参照してください。
最初のもの:
#!/usr/bin/python #coding: utf-8 class Rectangle(object): def __init__(self, width, height): self.width = width self.height = height def getSize(self): return self.width, self.height def setSize(self, size): self.width, self.height = size def delSize(self): del self.height size = property(getSize, setSize, delSize, "实例对象") r = Rectangle(10, 20) # 输出此时矩形的长和宽 # 此时执行的是getSize print r.size # 修改size的值 # 此时执行的是setSize r.size = 100, 200 print r.size del r.height print r.width # height属性已经被删除,下面语句会报错 # print r.size
演算結果:
(10, 20) (100, 200) 100
2 つ目: (デコレータ)
#!/usr/bin/python #coding: utf-8 class Rectangle(object): def __init__(self, width, height): self.width = width self.height = height # 下面加@符号的函数名要相同 # 第一个是get方法 @property def Size(self): return self.width, self.height # 此处是set方法,是@property的副产品 @Size.setter def Size(self, size): # 此时接收的是一个元祖 self.width, self.height = size @Size.deleter def Size(self): del self.width del self.height r = Rectangle(10, 20) print r.Size r.Size = 100, 200 print r.Size del r.height # 由于上一步删除了self.height属性,所以下面再访问的时候会报错 # print r.Size # 可以访问width,还没有被删除 print r.width
実行結果:
(10, 20) (100, 200) 100🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜
以上がPythonでプロパティ関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。