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 Web框架Pylons中使用MongoDB的例子
Dec 03 Python
python利用beautifulSoup实现爬虫
Sep 29 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
详解python的argpare和click模块小结
Mar 31 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
python如何将两张图片生成为全景图片
Mar 05 Python
Python-jenkins模块之folder相关操作介绍
May 12 Python
Python flask框架端口失效解决方案
Jun 04 Python
基于python代码批量处理图片resize
Jun 04 Python
详解python中的闭包
Sep 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
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
Less 安装及基本用法
2018/05/05 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
Python循环语句中else的用法总结
2016/09/11 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
九州传奇上机题
2014/07/10 面试题
班主任工作年限证明
2014/01/12 职场文书
软件项目开发计划书
2014/05/01 职场文书
幼师中班个人总结
2015/02/12 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android
Python图片验证码降噪和8邻域降噪
2021/08/30 Python