实例方法和类方法

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()


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页