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 相关文章推荐
Win10下Python环境搭建与配置教程
Nov 18 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
python实现用户管理系统
Jan 10 Python
Python返回数组/List长度的实例
Jun 23 Python
python3.6的venv模块使用详解
Aug 01 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
python+requests实现接口测试的完整步骤
Oct 27 Python
教你怎么用python实现字符串转日期
May 24 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二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP文件操作方法汇总
2015/07/01 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
javascript 动态调整图片尺寸实现代码
2009/12/28 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
javascript基本类型详解
2014/11/28 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
Javascript的比较汇总
2016/07/25 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
基于nodejs实现微信支付功能
2017/12/20 NodeJs
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
微信小程序列表时间戳转换实现过程解析
2019/10/12 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
25道Java面试题集合
2013/05/21 面试题
自荐信要包含哪些内容
2013/11/06 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python