linux Android java google php apache shell wordpress 程序员 centos Python Firefox mysql Ubuntu nginx 微软 开源 HTML5 linux命令 Windows

Python的神奇方法指南:反射

你也可以通过定义神奇方法来控制如何反射使用内建函数 isinstance() 和 issubclass() 的行为。 这些神奇方法是:

__instancecheck__(self, instance)

检查一个实例是否是你定义类中的一个实例(比如,isinstance(instance, class))

__subclasscheck__(self, subclass)

检查一个类是否是你定义类的子类(比如,issubclass(subclass, class))

这对于神奇方法的用例情况来说可能较小,可它的确是真的。 我并不想花费太多的时间在反射方法上面,因为他们不是那么地重要。 不过它们反映了在 Python 中关于面对对象编程一些重要的东西,而且在 Python 中的普遍:总是在找一种简单的方式来做某些事情,即使它能被用到的不多。 这些神奇方法似乎看上去不那么有用,但当你需要使用它们的时候你会感激它们的存在(和你阅读的这本指南!)。

延伸阅读

评论