这篇文章主要为大家展示了“Python中面向对象静态方法、类方法、属性方法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中面向对象静态方法、类方法、属性方法的示例分析”这篇文章吧。
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好成都网站建设、成都网站设计服务,我们努力开拓更好的视野,通过不懈的努力,创新互联建站赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,微信小程序,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。具体如下:
(1)静态方法--》-@staticmethod
装饰类中方法
只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性
class Dog(object): def __init__(self,name): self.name = name @staticmethod #实际上跟类没什么关系了 def eat(self): print("%s is eating %s" %(self.name,'dd')) def talk(self): print("%s is talking"% self.name) d = Dog("Td") d.eat(d)
(2)类方法-----》 @classmethod
装饰类中方法
只能访问类变量,不能访问实例变量
@classmethod def eat(self): print("%s is eating %s" %(self.name,'dd'))
(3)属性方法----》 @property #attribute
装饰类中方法
把一个方法变成一个静态属性
@property #attribute def eat(self): print("%s is eating %s" %(self.name)) # 调用 Dog("TD").eat
1.需要将一个值传递给eat属性方法-----修改属性值?
存在的问题是变成属性了直接赋值是无法实现的,需要在重新相同的方法,同时将该方法加上@eat.setter
进行装饰。
@property #attribute def eat(self): print("%s is eating %s" %(self.name,self.__food)) @eat.setter def eat(self,food): print("set to food:",food) Self.__food=food
2.删除属性---同名方法使用 @eat.deleter
修饰
@property #attribute def eat(self): print("%s is eating %s" %(self.name,self.__food)) @eat.deleter def eat(self): del self.__food
总结:
1. 通过@staticmethod
装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法。
2. 类方法通过@classmethod
装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量。
3. 属性方法的作用就是通过@property
把一个方法变成一个静态属性,调用时与调用属性的方式相同。
3.1 把一个方法变成静态属性的作用:
当某个属性的值是一系列动作后才得到的结果。所以每次调用时,其实它都要经过一系列的动作才返回结果的,但这些动作过程不需要用户关心,用户只关心得到这个属性的值即可,也就是说用户只需要调用这个属性就可以了。
(1)修改属性值
将由@proerty
装饰器(把一个方法变成一个静态属性)使用@proerty.setter
装饰器再装饰一下,此时 你需要写一个新方法(同名), 对这个属性值进行更改。
(2)删除属性
#1:将由@proerty
装饰器(把一个方法变成一个静态属性)使用@proerty.deleter
装饰器再装饰一下,此时 你需要写一个新方法(同名)。
#2:使用del删除该实例所对应的属性方法(属性) 例如:del 对象.属性
以上是“Python中面向对象静态方法、类方法、属性方法的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联成都网站设计公司行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。