首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

__getattr__

正常情况下,当调用类的方法或属性时,如果不存在,就会报错 要避免这个错误,除了可以加上那个要调用但不存在的属性外,Python还有另一个机制,那就是写一个__getattr__()方法,动态返回一个属性...只有在没有找到属性的情况下,才调用__getattr__,已有的属性会直接在类属性里查找,不会在__getattr__中查找 class Student(object):...def __init__(self): self.name = 'Michael' def __getattr__(self, attr):...Student() print(s.name) #输出:'Michael' print(s.score) #输出:99,当调用不存在的score属性时,Python解释器会调用__getattr...这样就会返回score的值 s.age() #输出:25,返回函数也是完全可以的 print(s.abc) #输出:None,任意调用如s.abc都会返回None,因为定义的__getattr

57510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    VBA专题12:详解GetAttr函数

    VBA的GetAttr函数将返回文件的基本属性。注意,由于它是一个函数,因此输出一个值;它不是文件对象的属性,不能写入GetAttr来更改文件的属性。同样,也不能使用此函数将文件设为只读或隐藏文件。...假设文件myFile是隐藏的,且是该文件唯一的一个属性,从上表中可知,语句GetAttr(myFile)将返回2。 更复杂一点的是隐藏的系统文件。...此时,必须在总和中包含4和2,因此输出为6:GetAttr(myFile) =vbHidden + vbSystem = 6。 隐藏目录的值是多少?...小结 VBA的GetAttr函数使用求和技术提供有关文件属性的信息,该技术为每个属性组合提供唯一编号。...同时,VBA的GetAttr函数是一个函数,而不是文件属性,因此不能使用它来更改文件属性,只能使用它来确定存在哪些文件属性。 可以使用按位AND运算符确定是否存在特定属性。

    1.9K20

    Python 魔法方法之__getattr__(self,name)

    前言 当实例对象调用一个不存在的属性时,系统通常会报错,那有啥办法避免这种现象么,或者说自定义报错信息,答案是肯定的,我们可以通过定义__getattr__(self,name)魔法方法来实现。...__getattr__(self, name) __getattr__(self,name) 定义当用户获取一个不存在的属性时的行为。...__(self,name)方法,一旦属性查找失败,就会调用__getattr__(self,name)方法: >>> class Animal(): ......def __getattr__(self,name): ......这边也来说下调用__getattr__的详细过程: 1.在对象的实例属性中寻找,找不到执行下一步2.在的类中查找类属性,找不到执行下一步3.在对象的继承链上寻找,找不到执行下一步4.调用__getattr

    1.6K20
    领券