python 静态方法与类方法


#!/usr/bin/python
#-*- coding: utf-8 -*-

class Pizza(object):
    a="AA"
    def __init__(self):
        self.name = 'leon'

    def cook(self):
        return self.mix_ingredients(self.cheese, self.vegetables)

    @staticmethod
    def mix_ingredients(x, y):
        print Pizza.a
        #print Pizza.name
        return x + y
  
    @classmethod
    def hi(cls, x):
        print cls.a * x


print Pizza.mix_ingredients(2,3) 
print Pizza.hi(3)

区别:
 
    类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用
    类方法的隐含调用参数是类,而类实例方法的隐含调用参数是类的实例,静态方法没有隐含调用参数 
 
    类方法与静态方法都不能访问实例属性(self.name)
    可以访问静态属性

评论关闭