说到装饰器,就不得不说python自带的三个装饰器:

1、@property 将某函数,做为属性使用

@property 修饰,就是将方法,变成一个属性来使用。

class A():

@property

def pfunc(self):

return self.value

@pfunc.setter

def pfunc(self,value):

self.value = value

@property

def pfunc1(self):

print('this is property')

if __name__=="__main__":

A.pfunc = 9

print A.pfunc

A.pfunc1

2、@classmethod 修饰类的方式

带修饰类方法:cls做为方法的第一个参数,隐式的将类做为对象,传递给方法,调用时无须实例化。

普通函数方法:self做为第一个参数,隐式的将类实例传递给方法,调用方法时,类必须实例化。

class A():

def func(self,x,y):

return x * y

@classmethod

def cfunc(cls,x,y):

return x * y

if __name__=="__main__":

print A().func(5,5)

print A.cfunc(4,5)

3、@staticmethod 修饰类的方式

1)是把函数嵌入到类中的一种方式,函数就属于类,同时表明函数不需要访问这个类

2)使用修饰服,修饰方法,不需要实例化

class A():

def func(self,x,y):

return x * y

@staticmethod

def sfunc(x,y):

return x * y

if __name__=="__main__":

print A.sfunc(6,5)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python三层装饰器-python中自带的三个装饰器的实现相关推荐

  1. python中自带的三个装饰器

    说到装饰器,就不得不说python自带的三个装饰器: 1.@property 将某函数,做为属性使用 @property 修饰,就是将方法,变成一个属性来使用. class A():@property ...

  2. python 三个内置装饰器,python中自带的三个装饰器

    说到装饰器,就不得不说python自带的三个装饰器: 1.@property 将某函数,做为属性使用 @property 修饰,就是将方法,变成一个属性来使用. class A(): @propert ...

  3. python中自带的三个装饰器_python三个自带装饰器的功能与使用(@property、@staticmethod、@classmethod)...

    本篇随笔只是记录我对这三个装饰器的理解,可能会有不准确的地方,敬请指出. property装饰器 功能:通过property装饰器控制类的属性的绑定与获取,一般就是给某个属性增加一个验证类型等功能. ...

  4. java的布局管理器_Java中提供了几种布局管理器

    近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局管理器具体情况是怎么样的呢?Java中提供了几种布局管理器的相关信息有哪些?下面的内容是小编为大家找到的关于J ...

  5. 电脑PDF阅读器哪个好用?这三个阅读器值得收藏

    PDF作为办公时常用的文件格式,相信不少小伙伴都有使用过它.那大家有碰到过无法打开PDF文件或者打开PDF文件后发现内容是乱码的情况吗?遇到这种情况,确实让人挺头疼的,因为这样就没办法阅读PDF文件了 ...

  6. python中pos()_python中不带NLTK的POS标记器

    我想给索拉尼库尔德语的限定词和介词做一个词性标记.我使用下面的代码将每个标记放在库尔德语文本中的每个命题或限定词之后.在import os SOR = open("SOR-1.txt&quo ...

  7. python发送cookie请求_Python中实现带Cookie的Http的Post请求

    已经实现了如何获得对应的cookie,具体参考: [已解决]Python中如何获得访问网页所返回的cookie 现在想要把已获得cookie,在http的提交post请求的时候,也同时发送过去. 即, ...

  8. python display 报错_Python中的函数(三)

    Python中的函数(三) 在前面两篇文章中已经探讨了函数的一些相关用法,下面一起来了解一下函数参数类型的问题.在C语言中,调用函数时必须依照函数定义时的参数个数以及类型来传递参数,否则将会发生错误, ...

  9. 关于Unity中自带摇杆与车轮碰撞器的使用

    准备 在创建好项目目录的基础上 导入一个第三方的资源包,在Project面板里面 右键---->Import Package---->Custom Package---->easy_ ...

最新文章

  1. 免费的私人代码托管(bitbucket) 和 常用git指令
  2. R语言层次聚类(hierarchical clustering):特征缩放、抽取hclust中的聚类簇(cutree函数从hclust对象中提取每个聚类簇的成员)、基于主成分分析的进行聚类结果可视化
  3. python 文字语音朗读-教你用 Python 来朗读网页
  4. 20169205实验一 Java开发环境的熟悉(Linux+IDEA)
  5. 一个插排引发的设计思想 (一) 观察者模式
  6. 客户成功已死,客户服务还活着
  7. 痞子衡嵌入式:单片机AI的春天已来,ARM Cortex-M55发布了
  8. 巴蒂尔7个三分火箭破网 麦蒂战表兄取缺姚后首胜
  9. sql mdf文件被破坏,ldf完好的情况下恢复数据库
  10. 第五天--表单与页面
  11. 3.性能之巅 洞悉系统、企业与云计算 --- 操作系统
  12. 阿里云发布ET环境大脑 对抗雾霾、排污和自然灾害
  13. ext3日志模式---文件系统
  14. 热血传奇客户端wil文件中文含义详解
  15. matlab及系统仿真期末试题,matlab与系统仿真综合试题
  16. Excel如何快速方便生成随机姓名
  17. window下内网远程控制工具
  18. 读书笔记 - 多Agent强化学习下的自适应交通信号控制研究综述2017
  19. 自注意力 self-attention 笔记
  20. 数据投毒攻防对抗技术-2.推荐系统中的数据投毒

热门文章

  1. web项目获取运行时...\WEB-INF\classes目录下文件
  2. C++ 虚函数、多态
  3. 【c++内存分布系列】单独一个类
  4. ASP.NET之间数据的传递(未完)
  5. mac 苹果多版本jdk自由切换
  6. HDU 1058(打表)
  7. opencv学习之路(25)、轮廓查找与绘制(四)——正外接矩形
  8. win8.1 无法安装 net framework3.5的解决办法
  9. svn 1.8.11 命令行提交新添加文件错误
  10. 各种大型网站技术架构