@property、私有属性
2018-02-03 11:49
197 查看
# -*- coding: utf-8 -*- class People(object): def __init__(self, name, age): self.name = name self.age = age # 私有属性 self.__number = 0 # 这俩函数的作用,就是在为了在类声明的外部,可以访问到私有属性 # 专门定义函数获取私有属性值 # def num(self): # # 返回私有属性值 # return self.__number # # # 专门定义函数设置私有属性值 # # qwer是一个函数名 随便取 # def qwer(self,value): # # 给对象的属性赋值 # self.__number = value # # 专门定义函数删除私有属性 # def delete_attr(self): # # 删除属性 # del self.__number # 获取私有属性值 number = p1.number 会执行这个函数 @property def number(self): # 返回私有属性值 return self.__number # 设置私有属性值 p1.number = 666 @number.setter def number(self, value): # 设置__number的值 self.__number = value # 删除私有属性 del p1.number 会执行这个函数 @number.deleter def number(self): # 删除属性 del self.__number # @property # def work(self): # 当rs = 对象.work 会执行这个函数 # print('执行了@property装饰的work函数') # # @work.setter # 当对象.work = 值 会执行这个函数 # def work(self, value): # print('执行了@work.setter装饰的work函数') # # @work.deleter # 当 del 对象.work 会执行这个函数 # def work(self): # print('执行了@work.deleter装饰的work函数') p1 = People('张三', 22) # 执行@property装饰的函数 # p1.work # 执行@work.setter装饰的函数 # p1.work = 2000 # 执行@work.deleter装饰的函数 # del p1.work # 在类声明的外部,无法直接访问私有属性 # number = p1.num() # print(number) # 在类声明的外部,无法直接访问私有属性 # p1.__number = 1000 # p1.qwer(1000) # number = p1.num() # print(number) # 在类声明的外部,无法直接访问私有属性 # del p1.__number # p1.delete_attr() # 正常的对象属性赋值 # 对象.属性名 = 属性值 p1.name = '李四' # 获取对象的属性值 name = p1.name # 删除对象的属性 del p1.name # 私有属性升级版 # 会去执行@property装饰number函数,函数执行完成后返回一个结果 num = p1.number print(num) # 会去执行@number.setter装饰的number函数,在函数中设置__number属性的值 p1.number = 666 # 会去执行@property装饰number函数,函数执行完成后返回一个结果 print(p1.number) # 会去执行@number.deleter装饰的number函数,在函数中会将__number属性删除 del p1.number # 会去执行@property装饰number函数,函数执行完成后返回一个结果 print(p1.number)
相关文章推荐
- IE浏览器私有CSS属性
- 第三条:用私有构造器或者枚举类型强化Singleton属性
- @property属性关键字详解
- Spring @Autowired注解私有属性(无set方法)
- OC中@property属性关键字的使用(assign/weak/strong/copy)
- 子类继承父类的私有属性
- 用属性来访问类的私有成员
- C++中修改由const修饰的私有属性
- Firefox CSS私有属性备忘记录
- Java反射之获取私有公共的属性和方法
- 使用反射操作类的私有属性(Field)和私有方法(Method)
- JAVA-Spring-Aop拦截ACTION中的方法,但是运行时AOP会拦截我Action中所有的私有属性的一些get,set方法。
- 用xib设置圆角,边框和UITextField的私有属性placeholderColor
- iOS -- @property属性说明
- javascript高级属性:私有 和 继承
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- 用私有属性来拯救IE7缩放图片的失真
- 通过java反射技术访问类中私有成员属性
- ios开发中@property的属性介绍
- java通过反射设置对象私有属性