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 相关文章推荐
web.py 十分钟创建简易博客实现代码
Apr 22 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
Python实现读取json文件到excel表
Nov 18 Python
python函数与方法的区别总结
Jun 23 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Python把图片转化为pdf代码实例
Jul 28 Python
通过代码简单了解django model序列化作用
Nov 12 Python
Python之Sklearn使用入门教程
Feb 19 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 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
实用函数2
2007/11/08 PHP
理解PHP中的stdClass类
2014/04/18 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
python re正则表达式模块(Regular Expression)
2014/07/16 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python多线程抽象编程模型详解
2019/03/20 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
Keras 使用 Lambda层详解
2020/06/10 Python
keras输出预测值和真实值方式
2020/06/27 Python
python 读取、写入txt文件的示例
2020/09/27 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
乡镇纠风工作实施方案
2014/03/22 职场文书
领导干部对照检查材料
2014/08/24 职场文书
生产操作工岗位职责
2014/09/16 职场文书
公司离职证明范本
2014/10/17 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL