def Call_isinstance(t, x):
"""Translate ``isinstance(foo, Bar)`` to ``foo instanceof Bar`` and
``isinstance(Foo, (Bar, Zoo))`` to ``foo instanceof Bar || foo instanceof
Zoo``.
AST dump of the latter::
Call(args=[Name(ctx=Load(),
id='foo'),
Tuple(ctx=Load(),
elts=[Name(ctx=Load(),
id='Bar'),
Name(ctx=Load(),
id='Zoo')])],
func=Name(ctx=Load(),
id='isinstance'),
keywords=[])
"""
if (isinstance(x.func, ast.Name) and x.func.id == 'isinstance'):
assert len(x.args) == 2
return _build_call_isinstance(x.args[0], x.args[1])
评论列表
文章目录