我正在尝试创建一个只接受可迭代参数的方法,例如list
,或.tuple
set
dict
这是我的代码:
class MjmMenuControl(MjmBaseMenu):
def __init__(self, items=None):
iterables = (dict, list, set, tuple)
for iterable in iterables:
if isinstance(items, iterable):
...
break
但是,我想知道是否有更简单的方法,例如if isinstance(items, <iterable_base_class>):
但我找不到任何东西。
我已经尝试为list
等找到基类,但它们似乎都来自object
:
>>> inspect.getmro(list)
(<class 'list'>, <class 'object'>)
>>> inspect.getmro(tuple)
(<class 'tuple'>, <class 'object'>)
这是可能的还是我必须坚持可怕的for
循环?