python
class Book:
def __init__(self, title):
self.title = title
self.page = 0
self.isbn10 = ''
def main():
b = Book('python book')
b.page = 100
b.page += 1
print b.page
if __name__ == '__main__':
main()
--Migrez le décorateur @ property
et son attribut setter correspondant si un comportement spécial est requis lorsque l'attribut est défini.
--Comportement du setter / getter Faites-en une méthode quand cela devient compliqué pour ne pas le compliquer.
@ property
, envisagez de refactoriser la classe d'origine.python
class Book(object):
def __init__(self, title):
self.title = title
self.page = 0
self.isbn10 = ''
class BookEx(Book):
def __init__(self, title):
super(BookEx, self).__init__(title)
self._page = 0
@property
def page(self):
return self._page
@page.setter
def page(self, page):
# something do need.
self._page = page
def main():
b = Book('python book')
b.page = 100
b.page += 1
print b.page
if __name__ == '__main__':
main()