Python3基础 __getattr__ 访问不存在的属性时,新增提示功能
- Python : 3.7.0
 - OS : Ubuntu 18.04.1 LTS
 - IDE : PyCharm 2018.2.4
 - Conda : 4.5.11
 - typesetting : Markdown
 
code
"""
@Author : 行初心
@Date   : 18-9-23
@Blog   : www.cnblogs.com/xingchuxin
@Gitee  : gitee.com/zhichengjiu
"""
class MyClass:
    def __init__(self, work):
        self.work = work
    def __getattr__(self, name):
        """
            class MyClass  def __getattr__(self, name)
            Inferred type: (self: MyClass, name: Any) -> None
        """
        print("你正在访问一个不存在的属性")
def main():
    # 访问不存在的属性
    MyClass(work=1).not_exist_attr
    # 访问存在的属性
    MyClass(work=1).work
if __name__ == '__main__':
    main()
result
/home/coder/anaconda3/envs/py37/bin/python /home/coder/PycharmProjects/oop/demo.py
你正在访问一个不存在的属性
Process finished with exit code 0
resource
- [文档] docs.python.org/3
 - [规范] www.python.org/dev/peps/pep-0008
 - [规范] zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules
 - [源码] www.python.org/downloads/source
 - [ PEP ] www.python.org/dev/peps
 - [平台] www.cnblogs.com
 - [平台] gitee.com
 
Python具有开源、跨平台、解释型、交互式等特性,值得学习。
Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。
Python3基础 __getattr__ 访问不存在的属性时,新增提示功能的更多相关文章
- Python3基础 getattr 获取对象的指定属性值
		
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
 - Python3基础 __setattr__ 在属性被赋值的时候,新增提示功能
		
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
 - Python3基础 list 访问列表中的列表的元素
		
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
 - Python3基础 filter()第一个参数为NONE时 结果只返回为True的对象
		
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
 - Python3基础 time.localtime 当前系统的年月日 时分秒
		
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
 - Python3基础 from...import...as 解决局部导入时的函数名重复问题
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - Python3基础 函数 参数为list可变类型时,使用append会影响到外部实参
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - 在VSCode中编辑HTML文档时,在Dom标签上写style属性时智能提示的问题
		
首先在VSCode中打开一个HTML文件 然后点右下角的“选择语言模式” 然后点击配置HTML语言的基础设置 然后在打开的界面中(右侧) 输入如下代码 { "editor.quickSugg ...
 - js基础学习之-js对象的属性
		
Js属性 1. 设置属性 1) 对象. 2) 对象[‘属性名’] 3) GetAttribute函数 2. 获取属性 1) 变量=对象. 2) 变量=对象[‘属性名’] 3) GetAt ...
 
随机推荐
- JAVA 的wait(), notify()与synchronized同步机制
			
转自:http://blog.csdn.net/zyplus/article/details/6672775 在JAVA中,是没有类似于PV操作.进程互斥等相关的方法的.JAVA的进程同步是通过syn ...
 - Java中String, StringBuilder和StringBuffer
			
Java中常用来处理字符串的类有三个: String, StringBuffer和StringBuilder. 区别 三者都继承自CharSequence接口, 首先说明三者间主要区别 String字 ...
 - 洛谷P4436 游戏 [HNOI/AHOI2018]
			
正解:拓扑排序 解题报告: 传送门! 首先不难想到可以把麻油锁的一段先直接缩成一个点,然后预处理每个点能到达的最左和最右节点,然后就能O(1)地查询辣 所以难点在于预处理 可以想到,对于它给定的关于锁 ...
 - Git 常用命令(转)
			
原文:http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.html add by zhj :图是用 思维导图 软件MindMapp ...
 - Scala系统学习(一):Scala概述
			
Scala是可扩展语言的缩写,是一种混合功能编程语言. 它由Martin Odersky创建. Scala顺利整合面向对象和函数式语言的功能. Scala被编译后在Java虚拟机上运行. 许多现有公司 ...
 - PIMPL(二)
			
文档下载 上一篇文档,PIMPL(一) 1 如何使用PIMPL 有多种方式实现PIMPL,这里按照<Effective C++>中介绍的方式. 1.1 基本步骤 假设原有Person如下: ...
 - 后台维护常用SQL
			
OU.库存组织与子库存 select hou.organization_id ou_org_id, --org_id hou.name ou_name, --ou名称 ood.organization ...
 - 改变 select下拉框 样式
			
select{ outline: none; text-indent: 10px; height: 45px; line-height: 45px; width: 100%; border:1px s ...
 - zw版【转发·台湾nvp系列Delphi例程】HALCON ConvolImage
			
zw版[转发·台湾nvp系列Delphi例程]HALCON ConvolImage procedure TForm1.Button1Click(Sender: TObject);begin img.D ...
 - Postman: Pre-request Script,设置body 变量
			
1)Postman Pre-request Script 设置变量名 2)把变量放在body里 3)Send后查看变量是否被替换