静态方法:
#静态方法只是名义上归类管理,不能使用类变量和实例变量,是类的工具包
#我个人的理解是扯虎皮做大旗,静态方法只是借用类的大树下的一个独立函数
class Static:
attribute='属性'
def __init__(self,parameter):
self.parameter=parameter
def test(self):
return ('test',self.parameter)
@staticmethod
def print_static(a,b,c):
print(Static.attribute)
return ('这个是静态方法',a+b+c)
s=Static('hello')
print(s.test())
print(Static.print_static(2,4,6))类方法:
'''
@classmethod 类方法是通过类里面的函数调用类本身的属性
'''
class Class():
attribute='类的属性'#类的属性
def __init__(self,parameter): #这里的self是一个对象
self.parameter=parameter #实例的属性
def test(self):
print(self)
return ('类方法测试调用',self.parameter)
@classmethod#类方法只能调用类属性,不能调用实例属性
def print_class(cls): #这里的cls是一个类
print(cls)
return ('通过类调用类的属性',cls.attribute)
x=Class('实例的属性')
print(x.test())
print(x.parameter)
print(Class.print_class())
print(Class.attribute)原文:http://blog.51cto.com/853056088/2132884