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中pycurl库的用法实例
Sep 30 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
wxPython实现文本框基础组件
Nov 18 Python
Python Celery多队列配置代码实例
Nov 22 Python
python中的逆序遍历实例
Dec 25 Python
Django中的模型类设计及展示示例详解
May 29 Python
Python 如何测试文件是否存在
Jul 31 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
TensorFlow的自动求导原理分析
May 26 Python
python中subplot大小的设置步骤
Jun 28 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和ACCESS写聊天室(二)
2006/10/09 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
php实现RSA加密类实例
2015/03/26 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
理解python中生成器用法
2017/12/20 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
Python中的 enum 模块源码详析
2019/01/09 Python
详解python中的index函数用法
2019/08/06 Python
python绘制玫瑰的实现代码
2020/03/02 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
亚洲领先的旅游体验市场:Voyagin
2019/11/23 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
大学生实习证明范本
2014/01/15 职场文书
假期安全教育广播稿
2014/10/04 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Golang入门之计时器
2022/05/04 Golang