[b0016] python 归纳 (二)_静态方法和类方法
# -*- coding: UTF-8 -*- """ 测试 类的静态方法,类方法 @staticmethod @classmethod 总结: 1. self 指向类对象, cls 指向类,两个名字都可以随意取,一般取大家公认的这个两个 2. staticmethod 方法体可以调用 同类的 类.类属性、 类.静态方法、类.类方法 类外可以调用 类.静态方法 3. classmethod 方法体可以条用 同类的 cls.类属性、cls.静态方法、cls.类方法 当然也可以通过 类.类属性、 类.静态方法、类.类方法 类外可以调用 类.类方法 4. 类属性(company)调用范围为全部 类外 类.类属性 实例方法 self.类属性 静态方法 类.类属性 类方法 cls.类属性|类.类属性 """ class Washer: company = "lilei" def __init__(self,water=10,scour=2): self._water = water self.scour = scour self.year = 2010 @staticmethod def spins_ml2(spins): print "ml2" @staticmethod def spins_ml(spins): print(Washer.company) Washer.get_washer2(2) Washer.spins_ml2(5) @classmethod def get_washer2(cls,params): # print "washter2" pass @classmethod def get_washer(cls,water,scour): # print Washer.company # print cls.company # print cls.get_washer2(2) pass print cls.company cls().start_wash() #通过cls获得实例对象 调用实例方法 # print("comany:",Washer.company) # print('year:',self.year) # return cls(water,cls.spins_ml(scour)) def start_wash(self): print "hello" def start_wash2(self): """实例方法中,调用类的静态、类方法""" Washer.get_washer2(2) self.get_washer2(2) Washer.spins_ml2(5) self.spins_ml2(5) print self.company print Washer.company if __name__ == '__main__': # print(Washer.spins_ml(8)) # # print(w.spins_ml(8)) # w = Washer(200,Washer.spins_ml(9)) # w.start_wash() # case 1 静态方法 print "-----1" Washer.spins_ml(5) # case 2 类方法 print "-----2" Washer.get_washer(100,9) print Washer.company # case 3 实例方法 print "-----3" w = Washer() w.start_wash2() """ Out: -----1 lilei ml2 -----2 lilei hello lilei -----3 ml2 ml2 lilei lilei """
写满200篇博文再说