标签:def property 直接 隐藏 通过 类型 实例 import 使用
from test01 import Person from test001 import get_score def monkeypatch4Person(): Person.get_score = get_score monkeypatch4Person() if __name__== ‘__main__‘: print(print(Person().get_score))
#把实例的属性保护起来,不让外部直接访问,外部使用getter读取属性和setter方法设置属性 class Person: def __init__(self,name,age=18): self.name = name self.__age = age def age(self): return self.__age def set_age(self,value): self.__age = value 通过age 和set_age方法操作属性
class Person: def __init__(self,name,age=18): self.name = name self.__age = age @property def age(self): return self.__age @age.setter def age(self,age): self.__age = age @age.deleter def age(self,age): del self.__age print(‘del‘) tom = Person(‘tom‘) print(tom.age) tom.age = 20 print(tom.age) del tom.age
class Person: def __init__(self,name,age=18): self.name = name self.age = age age = property(lambda self:self.__age) tom =Person(‘tom‘) print(tom.age)
class Person: def __init__(self,name,age=18): self.name = name self.age = age def __del__(self): print(‘delete {}‘.format(self.name)) tom = Person(‘tom‘) del tom
面向对象的三要素之一
封装:
将数据和操作组织到类中,即属性和方法
将数据隐藏起来,给使用者提供操作,使用者通过操作就可以获取或者修改数据,getter和setter
通过访问控制,暴露适当的数据给用户,隐藏该隐藏的,保护成员或私有成员
标签:def property 直接 隐藏 通过 类型 实例 import 使用
原文地址:http://www.cnblogs.com/spidermansam/p/7822225.html