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类参数self使用示例
Feb 17 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
python实现线程池的方法
Jun 30 Python
详解python单例模式与metaclass
Jan 15 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 Python
pandas ix &iloc &loc的区别
Jan 10 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
基于python实现操作redis及消息队列
Aug 27 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 Python
Python解析微信dat文件的方法
Nov 30 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
桌面中心(四)数据显示
2006/10/09 PHP
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
php错误日志简单配置方法
2016/07/11 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Python 专题三 字符串的基础知识
2017/03/19 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
应用数学专业求职信
2014/03/14 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
2015年新农合工作总结
2015/03/30 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL