Python3基礎 __delattr__ 在一個屬性被刪除時的行為
阿新 • • 發佈:2018-09-24
rule bash github 還在 __main__ ces bin con 初心
?
- python : 3.7.0
- OS : Ubuntu 18.04.1 LTS
- IDE : PyCharm 2018.2.4
- conda : 4.5.11
- type setting : Markdown
?
code
""" @Author : 行初心 @Date : 18-9-23 @Blog : www.cnblogs.com/xingchuxin @GitHub : github.com/GratefulHeartCoder """ class MyClass: def __init__(self, work, score): self.work = work self.score = score def __delattr__(self, name): print("你正在刪除一個屬性") return super().__delattr__(name) def main(): test = MyClass(work="math", score=100) # 刪除work屬性 del test.work # work屬性刪除,score屬性還在 print(test.score) try: print(test.work) except AttributeError as reason: print(reason) if __name__ == ‘__main__‘: main()
?
result
/home/coder/anaconda3/envs/py37/bin/python /home/coder/PycharmProjects/oop/demo.py
你正在刪除一個屬性
100
‘MyClass‘ object has no attribute ‘work‘
Process finished with exit code 0
?
resource
- [文檔] https://docs.python.org/3/
- [規範] https://www.python.org/dev/peps/pep-0008/
- [規範] https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules/
- [源碼] https://www.python.org/downloads/source/
- [ PEP ] https://www.python.org/dev/peps/
- [平臺] https://www.cnblogs.com/
?
Python具有開源、跨平臺、解釋型、交互式等特性,值得學習。
Python的設計哲學:優雅,明確,簡單。提倡用一種方法,最好是只有一種方法來做一件事。
代碼的書寫要遵守規範,這樣有助於溝通和理解。
每種語言都有獨特的思想,初學者需要轉變思維、踏實踐行、堅持積累。
Python3基礎 __delattr__ 在一個屬性被刪除時的行為