静态方法和类方法
Posted chenadong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态方法和类方法相关的知识,希望对你有一定的参考价值。
1、类方法:@classmethod
如下例子:
class Hero(object): __height = 1 # 英雄高度 def __init__(self, name, ad, ap): # 初始化属性 self.__name = name self.__ad = ad self.__ap = ap @classmethod def set_height(cls, new_height): # 配置英雄的身高 cls.__height = new_height @property def hit_ad(self): # 返回英雄的伤害 return self.__ad @hit_ad.setter def hit_ad(self, va): # 添加暴击效果 self.__ad = self.__ad * va @property def hero_name(self): return self.__name hero = Hero("chenAdong", 100, 100) print "%s 输出了 %s 点物理伤害" % (hero.hero_name, hero.hit_ad)
>>>chenAdong 输出了 100 点物理伤害 # 输出结果
如上,类方法可以用来修改静态属性;
2、静态方法:@staticmethod
先举例子:
class Hero(object): def __init__(self, name): self.__name = name print "hero_name: %s" % self.__name @staticmethod def create_hero(): Hero("chenAdong") Hero.create_hero()
>>> hero_name: chenAdong
如上:在类中,定义方法需要传给默认参数self,使用静态方法,则不用,但可以传其他参数;
以上是关于静态方法和类方法的主要内容,如果未能解决你的问题,请参考以下文章
python中静态方法(@staticmethod)和类方法(@classmethod)的区别
区分成员变量和类变量,this关键字,封装,静态方法和静态代码块,通通给我看懂(概念版) 后续有相关示例