[英]Python: Call function if setter is called?
我有一個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
屬性時都必須自己做?
您可能需要的是財產概念。
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
你在找property()
。
def Student(object):
def _get_address(self):
...
def _set_address(self):
...
address = property(_get_address, _set_address)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.