13.8 静态方法和类方法:
静态方法和类方法在Python2.2中引入,经典类及新式(new-style)类中都可以使用它
静态方法和这些语言中的是一样的,它们仅是类中的函数(不需要实例).
事实上,在静态方法加入到Python之前,用户只能在全局名字空间中创建函数
回忆一下,通常的方法需要一个实例(self)作为第一个参数,并且对于绑定的方法调用来说,
self 是自动传递给这个方法的。
class HotelRoomCalc(object):
def __init__(self, rt, sales=0.085, rm=0.1):
self.salesTax = sales
self.roomTax = rm
self.roomRate = rt
def calcTotal(self, days=1):
print self.salesTax
print self.roomTax
print self.roomRate
print days
a=HotelRoomCalc('100',99,88)
print a.calcTotal(990)
类方法而言,需要类而不是实例作为第一个参数,它是由解释器传给方法。
类不需要特别地命名,类似self,不过很多实用cls作为变量名字
class HotelRoomCalc(object):
def __init__(self):
pass
@classmethod
def calcTotal(cls):
print 'aaaaaa'
HotelRoomCalc.calcTotal()