我正在编写一个封装任意对象的类,包括简单类型.我希望"is"关键字对封装的值进行操作,例如此行为:
Wrapper(True) is True -> True
Wrapper(False) is True -> False
Wrapper(None) is None -> True
Wrapper(1) is 1 -> True
Run Code Online (Sandbox Code Playgroud)
是否有任何对象方法可以覆盖以获得此行为?
Ign*_*ams 28
不is,and而且or不能超载.
is本身不能重载,但您可能对其他可能适合您的用例的“反射”魔术方法感兴趣(因为您正在查看此线程):
__instancecheck__(self, instance)检查实例是否是您定义的类的实例(例如isinstance(instance, class).
__subclasscheck__(self, subclass)检查一个类是否是您定义的类的子类(例如issubclass(subclass, class))。
| 归档时间: |
|
| 查看次数: |
6933 次 |
| 最近记录: |