#静态属性的作用是吧类的方法隐藏起来(可以把背后的逻辑隐藏起来),让用户感觉是在电泳属性,而不是方法
class Static:
attribute='属性'
def __init__(self,parameter1,parameter2,parameter3):
self.parameter1 = parameter1
self.parameter2 = parameter2
self.parameter3 = parameter3
def test(self):
return ('test',self.parameter1)
@property
def print_static(self):
print(Static.attribute)
return ('这个是静态属性的结果 %s %s %s'%(self.parameter1,self.parameter2,self.parameter3))
s=Static('hello','world','!')
print(s.test())
print(s.print_static)
静态方法:
#静态方法只是名义上归类管理,不能使用类变量和实例变量,是类的工具包 #我个人的理解是扯虎皮做大旗,静态方法只是借用类的大树下的一个独立函数 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
时间: 2024-10-07 06:10:58