python的实例类方法、修饰器类方法、修饰器保护方法、修饰器静态方法中私有属性的区别和自定义property的读写方法
class Cla:__count=0def __init__(self,v):self.__value=vCla.__count+=1def show(self):print('普通实例方法访问私有属性:',self.__value,Cla.__count)@classmethod def classShow(cls):print('修饰器类方法访问私有属性:',cls.__count)@propertydef value(self):print('修饰器保护方法:',self.__value)@staticmethoddef staticShow():print('修饰器静态方法访问私有属性:',Cla.__count)
cla=Cla(5)
cla.show()
cla.classShow()
cla.staticShow()
print()
cla2=Cla(10)
cla2.show()
cla2.classShow()
cla2.staticShow()
print()
Cla.show(cla)
Cla.classShow()
Cla.staticShow()
print()
cla.value
#cla.value=99
#del cla.value
第三段是通过类名调用类方法。
可以发现,实例cla和实例cla2调用类构造方法的私有属性__value相互独立,类私有属性__count实例共用。
修饰器类方法参数cls与类名相同。
cla.value=99
del cla.value
增加两行代码测试后,发现修饰器保护方法可读不可写,也不可删除。
如下修改可自定义property的读写方法:
class Cla:def __init__(self,v):self.__value=vdef __getValue(self):print(self.__value)def __setValue(self,v):self.__value=vdef __delValue(self):del self.__valuevalue=property(__getValue,__setValue,__delValue)
cla=Cla(5)
cla.value
cla.value=10
cla.value
#del cla.value
#cla.value
增加测试删除代码
del cla.value
cla.value
python的实例类方法、修饰器类方法、修饰器保护方法、修饰器静态方法中私有属性的区别和自定义property的读写方法相关推荐
- python私有属性怎么定义_Python中私有属性的定义方式
Python没有类似于Java的private关键字, 但也可以为类定义私有属性. 只需将属性命名变为以__开头, 例如 __field. 示例代码: class Vector2D(object): ...
- Python中的类属性和类方法(静态方法、私有属性和私有方法)
一.类属性和类方法 类的方法 在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数 代码块: class Student(object ...
- Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别?
类方法 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对象和实例对象都可调用. 使用格式: 对类的属性进行操作,就要用类的方法. @class ...
- python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...
python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...
- Python 练习实例100例—9
☞☞☞点击查看更多优秀Python博客☜☜☜ Python 练习实例8 **题目:**判断101-200之间有多少个素数,并输出所有素数. **程序分析:**判断素数的方法:用一个数分别去除2到sqr ...
- Python中菱形继承的MRO顺序及property属性
Python中菱形继承的MRO顺序及property属性 文章目录 Python中菱形继承的MRO顺序及property属性 一.Python中菱形继承的MRO顺序 1. 单独调用父类的方法 2. 多 ...
- python只读属性怎么设置_python 设置只读属性(property或者__setter__方法)
python设置只读属性的方式有两种 1.通过property装饰器和私有属性配合完成只读属性 2.借助__setter__方法,设置逻辑阻止赋值 方式一: class Task(object): d ...
- python getattr和getattribute_python中__getattr__和__getattribute__区别
重载__getattr__方法对类及其实例未定义的属性有效.如果访问的属性存在,就不会调用__getattr__方法.这个属性的存在,包括类属性和实例属性 classClassA: x= 'a' de ...
- Python私有属性与私有方法
1. 场景定义 私有属性 是指在 Python 的面向对象开发过程中,对象的某些属性只想在对象的内部被使用,但不想在外部被访问到这些属性. 即:私有属性是对象不愿意公开的属性. 私有方法 是指在 Py ...
最新文章
- python3精要(64)-Python命名风格规范-google版
- HDOJ 1030 Delta-wave
- stm32+lwip(四):网页服务器测试
- 扩展欧几里得算法 POJ 1061
- 案例 银行取款 java 1615136927
- npm 开发中 常用依赖包
- Docker的使用、底层原理及常用软件docker下载
- Excel如何导出自定义架构xml
- 如何安装VS2011Beta版
- 迪普融合之路 构建价值网络
- Excel 行或列合并工具 Concatenate 实现姓和名组合
- 2018 网易校招 骰子游戏
- Partitioning big graph with respect to arbitrary proportions in a streaming manner 菜鸟解读
- 【接箱子2.0】新手划过,dalao勿喷
- 高等数学(总结9-多重积分)
- 一文解析交通大数据是如何解决拥堵问题的
- 鸡和兔子若干只,头有35个,脚有94个,求兔子和鸭个多少只
- sed命令详解及运用
- 基于javaweb+jsp的个人日记管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)
- 写博客的主要动力来源
热门文章
- 遇到这 4 个迹象,赶紧下来、让人工智能上!
- 阿里工程师手把手教你设计 B 端垂类营销中心!
- 新手入坑自动驾驶,我是这么学习的......
- AI 技术争鸣!2019 AI 开发者大会盛大开幕
- 这才是设计 React 的万金油!
- 马云谈 5G 危机;腾讯推出车载版微信;Ant Design 3.22.1 发布 | 极客头条
- 13 岁自学编程,提出演进式架构的她,成 ThoughtWorks CTO!
- 杨超越吧编程大赛;拼多多刷单?苹果新员工一半没本科学历 | 极客头条
- 京东末位淘汰 10% 高管:稳定不是常态,淘汰才是
- Android 内核的开发“顽疾”如何解决?