假设我有五个类,如下所示:
class Operator:
def __init__(self):
pass
class Pow(Operator):
pass
class Mul(Operator):
pass
class Div(Operator):
pass
class Add(Operator):
pass
class Sub(Operator):
pass
一个令牌数组,其中一些是数字,另一些是从上述{Pow,Mul,Div,Add,Sub}类实例化的对象。
当我循环遍历数组时,我希望能够检查像这样的令牌类型:
for token in tokens:
if type(token) is Operator:
# do something
而不是这样做:
for token in tokens:
if type(token) in [Pow, Mul, Div, Add, Sub]:
# do something
我不知道第二个for循环是否有一个好的替代方案。
(欢迎任何代码重构(
使用方法isinstance(token, Operator)
这是的例子
ar = Div()
if isinstance(ar, Operator):
print("true")
for token in tokens:
if isinstance(token, Operator):
# do something