靜態方法和類方法
阿新 • • 發佈:2018-08-22
英雄 per 初始 ati 出了 class cme turn python
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,使用靜態方法,則不用,但可以傳其他參數;
靜態方法和類方法