静态方法
静态方法相当于函数,可以不创建对象直接引用
如果在类里面用静态方法,相当于函数,可以不创建对象,直接是用类里面的方法,你就当它是函数。
静态方法名义上归类管理,实际上静态方法访问不了类或实例种的任何属性
静态方法属于类
class Foo: def __init__(self): pass @staticmethod def func(): # 去掉self print('我是静态方法') Foo.func()
类方法
1、类方法只能访问类变量,不能访问实例变量
2、类方法至少要有一个参数,cls
3、类方法是用类进行调用
class Foo: @classmethod def f1(cls): print(cls) Foo.f1()
属性方法
1、把一个类里面的方法,变化成字段
class Foo: def __init__(self, name): self.name = name @property def fun(self): print('%s是做属性例子' % self.name) f = Foo('tom') f.fun #调用时候去掉括号
2、由于调用时候没有括号,那就不能在有参数的方法进行设置
3、属性赋值
class Foo: def __init__(self, name): self.name = name self.value = None @property def fun(self): print('%s是做属性例子' % self.value) @fun.setter def fun(self, value): # 名字必须一致,位置必须在后边 self.value = value f = Foo('tom') f.fun f.fun = 'ccccc' f.fun
4、删除
class Foo: def __init__(self, name): self.name = name self.value = None @property def fun(self): print('%s是做属性例子' % self.value) @fun.setter def fun(self, value): # 名字必须一致,位置必须在后边 self.value = value @fun.deleter # 删除 def fun(self): del self.value print('del') f = Foo('tom') f.fun f.fun = 'ccccc' f.fun del f.fun f.fun # 到这步就报错了