我有一个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"
我希望能够在设置地址属性时调用函数,这将执行诸如重新格式化地址或执行查找以及添加邮政编码等内容.是否有办法在对象内完成此操作定义或者我每次设置地址属性时都必须自己做?
解决方法:
您可能需要的是财产概念.
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
有关详细信息,请参阅此链接:http://snippets.dzone.com/posts/show/954