静态方法,和类方法实例

'''
静态方法,和类方法实例

'''
import math
class Pizza():
    radius = 5
    height = 10
    def __init__(self,radius,height):
        self.radius = radius
        self.height = height
        print("创建实例")
    # 静态方法:把他当成普通的函数来看待,也需要传参数,
    # Pizza这个类里面的实例变量跟它没有关系
    @staticmethod
    def mianji(radius):
        return math.pi*pow(radius,2)
    # 类方法:cls是这个类的名称,也就是说,当我调用这上面的面积的时候
    # 只需要用这个名字加上cls.mianji(),也就是相当于继承了mianji()这个函数,
    # 这里调用也需要传入参数,这里的传参也跟类没有一毛钱关系
    @classmethod
    def tiji(cls):
        return cls.mianji(cls.radius)*cls.height
    #cls.radius继承于类中的变量

    @classmethod
    def tiji2(cls,radius,height):
        return cls.mianji(radius) * height


# 总结:类方法可以继承静态方法,但静态方法不能继承任何方法的方法


Pai = Pizza(50,2)
print(Pai.mianji(5))
print(Pai.tiji())

 

posted @ 2018-05-30 16:25  Caionk  阅读(119)  评论(0编辑  收藏  举报