这适用于内置类型(str、list、int等)和正确导入的类,但不适用于模块:
type(x) is module #NameError: name 'module' is not defined.
解决方法如下:
str(type(x)) == "<class 'module'>" type(x) is type(os) # Or any imported module object.
但有没有更“Python”的方法?
lmyy7pcs1#
可以使用inspect模块,也可以使用具有适当类型的isinstance。
inspect
isinstance
>>> import inspect >>> import types >>> inspect.ismodule(inspect) True >>> isinstance(inspect, types.ModuleType) True
iklwldmw2#
是的,有一种更好、更“Python式”的方法可以做到这一点。你可以使用Python内置的inspect模块。inspect模块提供了几个函数,允许你检查对象的类型,包括模块!
2条答案
按热度按时间lmyy7pcs1#
可以使用
inspect
模块,也可以使用具有适当类型的isinstance
。iklwldmw2#
是的,有一种更好、更“Python式”的方法可以做到这一点。你可以使用Python内置的
inspect
模块。inspect
模块提供了几个函数,允许你检查对象的类型,包括模块!