84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
在php的情况下,如果是调用了不存在的实例方法,会调用 __call
如果是python的话,当调用了不存在的实例方法,有什么魔术方法会被触发吗?
如果是没有,有没有比较好的方式手动设置触发条件,在调用不存在的实例方法的时候出发,除了 抛异常
人生最曼妙的风景,竟是内心的淡定与从容!
有的。
访问Python对象实例的成员的时候,如果在一般位置找不到该成员,则会调用类的__getattr__方法。你可以在类里显示定义这个方法,来定义你希望的行为。
__getattr__
这个方法可以返回一个值,或者抛出一个AttributeError异常。
AttributeError
另外还有一个__getattribute__方法,每次访问实例成员的时候都会触发,具体可以参考官方文档。
__getattribute__
有的。
访问Python对象实例的成员的时候,如果在一般位置找不到该成员,则会调用类的
__getattr__
方法。你可以在类里显示定义这个方法,来定义你希望的行为。这个方法可以返回一个值,或者抛出一个
AttributeError
异常。另外还有一个
__getattribute__
方法,每次访问实例成员的时候都会触发,具体可以参考官方文档。