|
发表于 2019-8-14 18:16:23
|
显示全部楼层
- Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
- Type "help", "copyright", "credits" or "license()" for more information.
- >>> class C:
- def __getattr__(self, name):
- print(1)
- def __getattribute__(self, name):
- print(2)
- def __setattr__(self, name, value):
- print(3)
- def __delattr__(self, name):
- print(4)
-
- >>> c=C()
- >>> c.x=1
- 3
- >>> print(c.x)
- 2
- None
- >>> class C:
- def __getattr__(self, name):
- print("getattr")
- def __getattribute__(self, name):
- print("getattribute")
- return super().__getattribute__(name)
- def __setattr__(self, name, value):
- print("setattr")
- return super().__setattr__(name, value)
- def __delattr__(self, name):
- print("delattr")
-
- >>> c=C()
- >>> c.x=1
- setattr
- >>> print(c.x)
- getattribute
- 1
复制代码 和楼上一样, |
|