私はそれを次のようにやっています:
def set_property(property,value):
def get_property(property):
また
object.property = value
value = object.property
私は Python を初めて使用するので、まだ構文を調べています。これについてアドバイスをお願いします。
私はそれを次のようにやっています:
def set_property(property,value):
def get_property(property):
また
object.property = value
value = object.property
私は Python を初めて使用するので、まだ構文を調べています。これについてアドバイスをお願いします。
これを試してください: Python プロパティ
サンプルコードは次のとおりです。
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
print("getter of x called")
return self._x
@x.setter
def x(self, value):
print("setter of x called")
self._x = value
@x.deleter
def x(self):
print("deleter of x called")
del self._x
c = C()
c.x = 'foo' # setter called
foo = c.x # getter called
del c.x # deleter called
In [1]: class test(object):
def __init__(self):
self.pants = 'pants'
@property
def p(self):
return self.pants
@p.setter
def p(self, value):
self.pants = value * 2
....:
In [2]: t = test()
In [3]: t.p
Out[3]: 'pants'
In [4]: t.p = 10
In [5]: t.p
Out[5]: 20
@property
デコレータをチェックしてください。
プロパティは割り当てで使用できるため非常に便利ですが、検証も含めることができます。デコレーター @property と @<property_name>.setter を使用してメソッドを作成するこのコードを確認できます。
# Python program displaying the use of @property
class AgeSet:
def __init__(self):
self._age = 0
# using property decorator a getter function
@property
def age(self):
print("getter method called")
return self._age
# a setter function
@age.setter
def age(self, a):
if(a < 18):
raise ValueError("Sorry your age is below eligibility criteria")
print("setter method called")
self._age = a
pkj = AgeSet()
pkj.age = int(input("set the age using setter: "))
print(pkj.age)
私がこれについて書いたこの投稿にも詳細があります: https://pythonhowtoprogram.com/how-to-create-getter-setter-class-properties-in-python-3/