Python:如果调用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"

我希望能够在设置地址属性时调用函数,这将执行诸如重新格式化地址或执行查找以及添加邮政编码等内容.是否有办法在对象内完成此操作定义或者我每次设置地址属性时都必须自己做?

解决方法:

您可能需要的是财产概念.

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

上一篇:为什么使用Getter和Setter?Getter和Setter有什么区别?


下一篇:在setter php中输入Hinting vs Type Casting