[py]类的专有方法

时间:2022-03-07 16:47:52

陆陆续续总结一些用到的类的特殊方法

看源码总会看到一些奇奇怪怪的写法: 掺杂着设计模式
https://coding.net/u/RuoYun/p/Python-design-pattern/git/tree/master

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319098638265527beb24f7840aa97de564ccc7f20f6000

类的专有方法

slot : 给obj属性留坑

[py]类的专有方法

  1. 仅对当前类实例起作用,对继承的子类是不起作用的
  2. 除非在子类中也定义__slots__,这样,子类实例允许定义的属性就是自身的__slots__加上父类的__slots__

str 定制obj输出内容: print(a)(repr)

__str__给人看的, __repr__给程序看的

[py]类的专有方法

使用__str__定制
[py]类的专有方法

__getattr__动态获取设置属性
正常情况下,当我们调用类的方法或属性时,如果不存在,就会报错。比如定义Student类:

[py]类的专有方法

[py]类的专有方法

[py]类的专有方法

todo:
@proerty, 实现a.show
call: 实现 a()