Python:调用setter时调用函数?

2024-05-16 05:13:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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属性时调用一个函数,该函数将执行诸如重新格式化地址或执行查找并添加邮政编码等操作。是否有方法在对象定义内完成此操作,还是每次设置address属性时都必须亲自执行?在


Tags: 对象函数nameselfnone属性objectinit
2条回答

您可能需要的是一个属性概念。在

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

你在找^{}。在

def Student(object):
  def _get_address(self):
     ...

  def _set_address(self):
     ...

  address = property(_get_address, _set_address)

相关问题 更多 >