这篇文章主要介绍“Python的Property装饰器怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python的Property装饰器怎么用”文章能帮助大家解决问题。在讲property装饰器之前,先来看一个例子:执行这段代码,会输出如下的结果:这段代码的主要功能就是通过word方法返回一个字符串。而最后一行直接访问了word方法。在Python语言中,任何东西都可视为对象,方法也不例外。所以直接输出了word方法的对象形式。不过my.word这种调用形式,其实也是访问属性的方式,所以这段代码也可以看做将word方法作为属性使用,而不是获取word对象本身。因此,如果要想将word方法作为属性使用,就要使用property装饰器。下面看一下改进的代码:这段代码使用@property修饰了word方法,这时就会将word方法直接变成了属性,所以可以使用my.word形式调用word方法,运行这段代码,会输出Hello。我们可以看到,只需要1行代码,就可以将任何一个普通的Python方法变成属性。如果用@property修饰方法,那么就不能再当做方法调用了,例如,不能再使用my.word()形式调用word方法了,否则会抛出如下异常:可能有很多小伙伴感到很神奇,为何直接用@property修饰方法,就可以将Python方法变成属性呢?本节就来详细描述property装饰器的原理。首先要了解property到底是什么,使用下面的代码输出property:输出结果如下:很明显,property是一个类。而Python装饰器其实就是一个语法糖,本质上是将Python装饰器作为函数使用,并将被修饰器修饰的方法/函数作为参数值传入装饰器函数。例如,使用@property装饰word方法,那么就相当于使用下面的代码包装word方法:也就是说,word方法被@property修饰后,就会变成property类的实例。可以用下面的代码来演示property装饰器的原理。在这段代码中,使用@property修饰了word方法,而new_word方法直接通过创建property实例的方式修饰。执行这段代码,会输出如下内容:从输出结果可以看出,被@property修饰的word方法的类型是property类,而未被@property修饰的new_word方法的类型是function类。而且通过创建property实例的方式包装的new_word方法也可以当做属性使用,与下面的代码等效:用@property修饰的方法是只读属性,既不可以写,也不可以删除,否则会抛出异常。如果使用my.word = ‘new’设置word属性,会抛出如下异常。如果使用del my.word删除word属性,会抛出如下异常:其实property类还有setter方法和deleter方法,可以将属性变成可写和可删除的,先看下面的代码:用@propert 香港云主机y修饰的方法,就会被property实例取代。那么如何获取原始的方法呢?这就要通过property类的如下3个方法:(1)fget:获取被@property或@property.getter修饰的方法(2)fset:获取被@property.setter修饰的方法(3)fdel:获取被@property.deleter修饰的方法在下面的例子中,分别获取了word属性的3个原始方法,并且调用了这3个原始方法执行这段代码,会输出如下的结果。关于“Python的Property装饰器怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注开发云行业资讯频道,小编每天都会为大家更新不同的知识点。
这篇文章将为大家详细讲解有关NER技术的探索与实践是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。