# property
class Square(object):
def __init__(self, side):
self.side = side
def aget(self):
return self.side ** 2
def aset(self, value):
print('no')
def adel(self, value):
print('no')
area = property(aget, aset, adel, doc='area') # 이게 중요!!
s = Square(5)
print(s.area)
"""Properties with decorators.
데코레이터를 사용하게 된다. 위에 내용과 같다.
"""
from __future__ import print_function
class Square(object):
"""A square using properties with decorators.
"""
def __init__(self, side):
self.side = side
@property
def area(self):
"""Calculate the area of the square when the
attribute is accessed."""
return self.side * self.side
@area.setter
def area(self, value):
"""Don't allow setting."""
print("Can't set the area")
@area.deleter
def area(self):
"""Don't allow deleting."""
print("Can't delete the area.")
if __name__ == '__main__':
square = Square(5)
print('area:', square.area)
print('try to set')
square.area = 10
print('area:', square.area)
print('try to delete')
del square.area
print('area:', square.area)
댓글 없음:
댓글 쓰기