python中自带的三个装饰器的实现


Posted in Python onNovember 08, 2019

说到装饰器,就不得不说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中DJANGO简单测试实例
May 11 Python
Python文件操作之合并文本文件内容示例代码
Sep 19 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
python 重命名轴索引的方法
Nov 10 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
利用python求积分的实例
Jul 03 Python
使用python实现对元素的长截图功能
Nov 14 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
python中reload重载实例用法
Dec 15 Python
浅析python实现动态规划背包问题
Dec 31 Python
python反转列表的三种方式解析
Nov 08 #Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 #Python
Python通过递归获取目录下指定文件代码实例
Nov 07 #Python
Django REST framework 单元测试实例解析
Nov 07 #Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 #Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 #Python
Flask框架路由和视图用法实例分析
Nov 07 #Python
You might like
sql注入与转义的php函数代码
2013/06/17 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
ES6小技巧之代替lodash
2019/06/07 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
微信小程序渲染性能调优小结
2019/07/30 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
python处理json数据中的中文
2014/03/06 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
函授本科自我鉴定
2013/11/03 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
高一学生评语大全
2014/04/25 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js