静态方法
静态方法相当于函数,可以不创建对象直接引用
如果在类里面用静态方法,相当于函数,可以不创建对象,直接是用类里面的方法,你就当它是函数。
静态方法名义上归类管理,实际上静态方法访问不了类或实例种的任何属性
静态方法属于类
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 # 到这步就报错了