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双向链表实现实例代码
Nov 21 Python
python 中random模块的常用方法总结
Jul 08 Python
Python简单定义与使用字典dict的方法示例
Jul 25 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
numpy中loadtxt 的用法详解
Aug 03 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
django做form表单的数据验证过程详解
Jul 26 Python
浅析python中while循环和for循环
Nov 19 Python
教你如何使用Python实现二叉树结构及三种遍历
Jun 18 Python
Python 多线程处理任务实例
Nov 07 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
BBS(php & mysql)完整版(八)
2006/10/09 PHP
php && 逻辑与运算符使用说明
2010/03/04 PHP
php disk_free_space 返回目录可用空间
2010/05/10 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
浅析Git版本控制器使用
2017/12/10 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
WxPython建立批量录入框窗口
2019/02/27 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
农救科工作职责
2013/11/27 职场文书
爱国演讲稿400字
2014/05/07 职场文书
广告业务员岗位职责
2015/02/13 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
Nginx配置https的实现
2021/11/27 Servers
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL
MySql数据库 查询时间序列间隔
2022/05/11 MySQL
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技