# #
Python Python Python get set Python
|||
| ---| --- |
|`__getattr__(self, name)`|, |
|`__setattr__(self, name, value)`|,. `__setattr__` ""|
|`__delattr__(self, name)`|`__delattr__` `__setattr__` `__delattr__` ""|
|`__getattribute__(self, name)`|`__getattribute__` `__getattr__` `__getattribute__ ` Python ,`__getattr__` `__getattribute__``__getattribute__` ""|
```python
def __setattr__(self, name, value):
self.name = value
# ``__setattr__()``
# ``self.__setattr__('name', value)``
def __setattr__(self, name, value):
#
self.__dict__[name] = value
#
```
```python
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class User(object):
def __getattr__(self, name):
print(' __getattr__ ')
return super(User, self).__getattr__(name)
def __setattr__(self, name, value):
print(' __setattr__ ')
return super(User, self).__setattr__(name, value)
def __delattr__(self, name):
print(' __delattr__ ')
return super(User, self).__delattr__(name)
def __getattribute__(self, name):
print(' __getattribute__ ')
return super(User, self).__getattribute__(name)
if __name__ == '__main__':
user = User()
# __setattr__
user.attr1 = True
# ,__getattribute__
user.attr1
try:
# , __getattribute__, __getattr__
user.attr2
except AttributeError:
pass
# __delattr__
del user.attr1
```
```txt
__setattr__
__getattribute__
__getattribute__
__getattr__
__delattr__
```