我有一个Python函数,看起来大致是这样的:的Python:测试如果x是一个特别的方法对象
def f(x):
[...]
g(x)
有时候,我无法控制的原因x
是<bound method A.b of <A: a>>
类型。 g()
位于第三方库中,无法处理此参数并引发异常。因此,我想要做的g()
调用之前是测试这种情况下,做点别的:现在
def f(x):
[...]
if x == A.b:
doSometingElse()
else:
g(x)
,==
似乎并没有工作,因为它是不正确的。什么是测试我的变量x
是否包含方法A.b
的正确方法?
尝试'is_instance'。或使用'try ... catch'来捕获异常。 – stamaimer
'try ... catch'在我的情况下不是一个选项,因为它会过早地中止'g()' – Carsten
对于'isinstance(x,Y)''Y'究竟是什么? – Carsten