python中自带的三个装饰器的实现

作者:我爱学python 时间:2021-10-28 02:31:52 

说到装饰器,就不得不说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)

来源:https://www.jianshu.com/p/c07bee9269cd

标签:python,装饰器
0
投稿

猜你喜欢

  • Python中elasticsearch插入和更新数据的实现方法

    2023-02-25 02:14:20
  • 在Python web中实现验证码图片代码分享

    2022-05-29 05:32:50
  • 10行Python代码实现Web自动化管控的示例代码

    2021-05-30 17:01:05
  • Python与人工神经网络:使用神经网络识别手写图像介绍

    2022-05-23 03:11:36
  • Python实现一键整理百度云盘中重复无用文件

    2023-09-23 04:33:38
  • 一文搞懂Go Exec 僵尸与孤儿进程

    2023-10-21 07:14:07
  • Python 打印不带括号的元组的实现

    2022-08-12 15:47:45
  • pandas 使用apply同时处理两列数据的方法

    2021-09-27 07:35:30
  • Python Web框架之Django框架Form组件用法详解

    2021-10-21 11:12:39
  • 详谈Pandas中iloc和loc以及ix的区别

    2022-01-30 00:52:49
  • Python 使用requests模块发送GET和POST请求的实现代码

    2023-07-19 23:19:27
  • python实现简单神经网络算法

    2021-03-22 07:03:16
  • 在ASP中使用SQL语句之2:用WHERE子句设置查询条件

    2009-04-21 13:03:00
  • Python如何配置环境变量详解

    2021-11-20 08:18:21
  • python中合并两个文本文件并按照姓名首字母排序的例子

    2023-05-28 17:41:32
  • 关于浮动的前世今生

    2009-08-19 18:51:00
  • python数学建模是加深Numpy和Pandas学习

    2021-04-28 17:21:12
  • 一个数组随机不重复问题

    2008-09-02 20:05:00
  • 浅谈pytorch池化maxpool2D注意事项

    2023-07-14 15:02:30
  • 阿里妈妈广告牌制作规范

    2009-07-15 13:23:00
  • asp之家 网络编程 m.aspxhome.com