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函数中的函数(闭包)用法实例
Mar 15 Python
基于hashlib模块--加密(详解)
Jun 21 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
python如何删除文件中重复的字段
Jul 16 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
Django实现发送邮件找回密码功能
Aug 12 Python
python如何保证输入键入数字的方法
Aug 23 Python
Python for循环搭配else常见问题解决
Feb 11 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
scrapy处理python爬虫调度详解
Nov 23 Python
python 实现体质指数BMI计算
May 26 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定时任务延缓执行的实现
2014/10/08 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
从零学Python之入门(二)基本数据类型
2014/05/25 Python
Python实现从百度API获取天气的方法
2015/03/11 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
python实现可逆简单的加密算法
2019/03/22 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
酒店大堂副理的职责范文
2014/02/13 职场文书
应聘教师求职信
2014/07/19 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
员工担保书范本
2015/09/22 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
Python字符串的转义字符
2022/04/07 Python