[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/Lovepython015/Python/master/Article/PythonBasis/python10/3.md [Back]  [Original]

#  #

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__ 
```

Web Proxy Viewer  |  New URL  |  Original Page