【发布时间】:2021-07-27 18:54:33
【问题描述】:
假设我有五个这样的类:
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 循环是否有好的替代方案。
(欢迎任何代码重构)
【问题讨论】:
标签: python-3.x inheritance python-class