Python:调用setter时调用函数?
我有一个Python对象,它具有在调用构造函数后设置的某些属性。比如说,Python:调用setter时调用函数?,python,object,encapsulation,setter,Python,Object,Encapsulation,Setter,我有一个Python对象,它具有在调用构造函数后设置的某些属性。比如说, def Student(object): def __init__(name, address=None): self.name = name self.address = address stud = Student("John") stud.address = "123 Main St. New York, NY" 我希望能够在设置address属性时调用一个函数,该属性将执
def Student(object):
def __init__(name, address=None):
self.name = name
self.address = address
stud = Student("John")
stud.address = "123 Main St. New York, NY"
我希望能够在设置address
属性时调用一个函数,该属性将执行诸如重新格式化地址或查找并添加邮政编码等操作,等等。是否有办法在对象的定义中实现这一点,或者每次我设置address
属性时,我都必须自己完成吗?
你可能需要的是一个财产概念
class C(object):
def __init__(self, x):
self._x = x
def get_x(self):
return self._x
def set_x(self, x):
self._x = x
x = property(get_x, set_x)
obj = C(5)
obj.x = 6 # set
print obj.x # get
有关更多详细信息,请参阅此链接:
class C(object):
def __init__(self, x):
self._x = x
def get_x(self):
return self._x
def set_x(self, x):
self._x = x
x = property(get_x, set_x)
obj = C(5)
obj.x = 6 # set
print obj.x # get