python中的装饰器

python中的装饰器

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

    python中的装饰器能够装饰函数,也能够装饰类,功能是向函数或者类加入�一些功能。类似于设计模式中的装饰模式,它能够把装饰器的功能实现部分和装饰部分分开,避免类中或者函数中冗余的代码。

装饰器装饰函数:

def decrator(f1):
	def newf():
		print "strings will be connected:"
		print f1();
	return newf;
	
@decrator
def strconnect():
	x=raw_input("input the first string");
	y=raw_input("input the second string");
	return x+y;
	
strconnect();

    上面的代码,对函数strconnect加了装饰器,在装饰器decrator生成了新的函数newf,newf的函数体调用了f1函数,而且添加�了装饰功能。

装饰器装饰类:

def decrator(obj):
	class newclass():
		def __init__(self,s):
			self.tmp=obj(s);
		def show(self):
			print "apple is good for your health";
			print self.tmp.show();
	return newclass;

@decrator	
class apple():
	def __init__(self,s):
		self.str=s;
	def show(self):
		return self.str;	
t=apple('an apple a day keeps a doctor away');
t.show();

    与装饰一个函数类似,装饰器也能够装饰类,装饰器decrator中产生了新的类newclass,newclass的构造方法多了一个參数s,用于生成被装饰的类的对象,self.tmp=obj(s)即实现了这个功能。装饰器中的show函数也是调用了被装饰的类的show函数,而且添加�了装饰代码。

    除了自己定义的装饰器,python还提供了自带的装饰器,如静态方法和类方法就是通过装饰器来实现的,有关静态方法和类方法的说明,在这里:python静态方法类方法

    装饰器装饰一个函数就可以返回一个新的函数,装饰一个类就可以返回一个新的类,扩展了原有函数或者类的功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118681.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月2日 下午8:00
下一篇 2021年12月2日 下午8:00


相关推荐

  • SPI接口简介-Piyu Dhaker

    SPI接口简介-Piyu DhakerSPI接口简介作者:PiyuDhaker串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数字GPIO数量。SPI是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI接口可以是3线式或4线式。本文重点介绍常用的4线SPI接口。接口图1.含主机和从

    2022年6月22日
    71
  • 访问流量限制api已用完_jwt认证实现单点登录原理

    访问流量限制api已用完_jwt认证实现单点登录原理一步步实现对API的访问限制(节流)

    2022年4月20日
    65
  • ideaJ 2021 mac 在线激活码[在线序列号]「建议收藏」

    ideaJ 2021 mac 在线激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    58
  • artcam2011教程_keil5中文版使用教程

    artcam2011教程_keil5中文版使用教程1.介绍介绍.ArtCAMPro可以从二维矢量或位图生成三维浮雕。这些矢量和位图可以在ArtCAM里产生,或从其它系统输入。ArtCAM可以装载三维模型,并从它们生成浮雕。ArtCAMPro包含了编辑浮雕和存储浮雕的功能。产生三维浮雕以后,可以生成刀具路径。不但能够轻松产生初加工、精加工和雕刻的多条刀具路径,还可以模拟刀具路径,这样在加工前就可以看到完成的产品。培训文档位于C:/ProgramF…

    2025年9月13日
    7
  • Apache Shiro框架简介[通俗易懂]

    Apache Shiro框架简介[通俗易懂]shiro是什么我们在做web应用时总会需要做登录等身份认证。一般情况下我们都是自己写加密(例如MD5加密)和帐号密码对比。一般做法通过表单提交用户名及密码达到认证目的。权限方面的管理则通过一般的判断。比如哪个账户可以看到哪些模块,可以进行哪些操作。而shiro就是一个封装以上需求操作的开源框架。它能帮助我们更好更方便的做好web应用的安全管理。而不需

    2025年10月2日
    4
  • 如何在MyEclipse中反编译class文件

    如何在MyEclipse中反编译class文件反编译 class 文件 以前都是用的 jd gui exe 这个绿色软件 最近学到了如何在 Myeclipse 中直接查看 class 文件 这里记录一下 nbsp nbsp nbsp nbsp 1 下载 net sf jadclipse 3 3 0 jar 没有的话 可以网上搜一下 nbsp nbsp nbsp nbsp nbsp 2 将下载的这个软件放到 MyEclipse 的 dropins 文件夹下 安装过 svn 插件的估计对这个就很了解了 没有这个文件夹 自己可以新建一个

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号