先声明一下 各位大佬,这是我的笔记。 如有错误,恳请指正。 另外,感谢您的观看,谢谢啦!
嗯,processon真好用
下面来用实例举例
class test(): str0 = '我是静态字段,是大家共享的' def __init__(self): self.str01 = '我是普通字段为对象特有,也只有对象能更改我' def test01(self): print(self.str01) @staticmethod def test02(): str03 = '我是静态方法,对象和类都可以调用我' print(str03) @classmethod def test03(cls): print('我是类方法,对象和类都可以调用我') li1 = test() print(test.str0) print(li1.str0) print(li1.str01) li1.test01() li1.test02() li1.test03() 我是静态字段,是大家共享的 我是静态字段,是大家共享的 我是普通字段为对象特有,也只有对象能更改我 我是普通字段为对象特有,也只有对象能更改我 我是静态方法,对象和类都可以调用我 我是类方法,对象和类都可以调用我这个装饰器可做到以调用变量的形式,调用函数,非常的方便,
它有两种编写方法接下来一一介绍
class test(): def __init__(self): self.num = 1 @property def test02(self): print(f'--{self.num}--') l1 = test() l1.test02 --1--这是让你可以用访问变量的形式访问这个方法
那么既然是变量就应该有修改值,和删除的的操作
class test(): def __init__(self): self.num = 1 @property def test02(self): print(f'--{self.num}--') @test02.setter def test02(self,num): print(f'--{num}--') @test02.deleter def test02(self): print(f'--{num}--') del self.num print(f'--{num}--') l1.test02 = 2这条语句就可以进入有setter装饰器的函数中
--2-- del l1.test02这条语句就会进入有着deleter装饰器的函数中
--2-- NameError: name 'num' is not defined结果报错了却恰恰说明删除成功了
不过property还有另一种编写方法
class test(): def __init__(self): self.__num = 1 def get_num(self): print(f'--{self.__num}--') return self.__num def set_num(self,num): print(f'--{num}--') def del_num(self): print(f'--{__num}--') del self.num print(f'--{__num}--') num = property(fget=get_num,fset=set_num,fdel=del_num) l1 = test() l1.num l1.num =9 --1-- --9-- del l1.num --9-- NameError: name 'num' is not defined1 = test()
l1.num l1.num =9
–1-- –9--
del l1.num
–9-- NameError: name ‘num’ is not defined