Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确定变量在python中是否是有效的类或类型?_Python_Python 2.7 - Fatal编程技术网

如何确定变量在python中是否是有效的类或类型?

如何确定变量在python中是否是有效的类或类型?,python,python-2.7,Python,Python 2.7,如何验证变量是否为有效的类或类型? 我想在将其传递到isinstance()之前对其进行验证 除了试一试catch,还有别的方法吗? 关于我的评论,我正在使用python2: 可以说,类和类型都是类型的实例。这就是为什么这会起作用: >>> class foo(): pass >>> t = foo >>> t <class '__main__.foo'> >>> isinstance(t,type)

如何验证变量是否为有效的类或类型? 我想在将其传递到
isinstance()之前对其进行验证
除了试一试catch
,还有别的方法吗?
关于我的评论,我正在使用python2

可以说,类和类型都是
类型的实例。这就是为什么这会起作用:

>>> class foo():
    pass

>>> t = foo
>>> t
<class '__main__.foo'>
>>> isinstance(t,type)
True

关于我的评论:

可以说,类和类型都是
类型的实例。这就是为什么这会起作用:

>>> class foo():
    pass

>>> t = foo
>>> t
<class '__main__.foo'>
>>> isinstance(t,type)
True


一个变量怎么可能不是任何有效的类型?这不是为什么要使用isinstance吗?例如,如果我使用isinstance(a,{}),我将得到一个类型错误。我想确保传递到isinstance的第二个参数有效。请使用
isinstance(var,type)
,因为
type
类型。听起来很奇怪,好吧!这会照顾到类型。有没有办法确定它是一个有效的类呢?一个变量怎么可能不是任何有效的类型呢?这难道不是你使用isinstance的原因吗?比如说,如果我使用isinstance(a,{}),我会得到一个类型错误。我想确保传递到isinstance的第二个参数有效。请使用
isinstance(var,type)
,因为
type
类型。听起来很奇怪,好吧!这会照顾到类型。有没有办法确定它是一个有效的类呢?恐怕你的答案只适用于Python3。OP使用Python 2。7@Pynchia,这是一个我总是忘记考虑的公平点。感谢上帝的愚弄。顺便说一句,OP讨论的是变量/实例,我理解,不是类。i、 e.
t=foo()
。在这种情况下,上述解决方案在python2下失败(使用旧样式或新样式的类。顺便说一句,为什么在类声明中使用paren?)我使用新样式的类,因此即使使用python2.7no,该解决方案也能正常工作,他想确保变量是一个有效的类型,可以作为
isinstance
中的第二个参数传入,因此进行类型检查几乎是一种类型检查。恐怕您的答案仅适用于Python3。OP使用Python 2。7@Pynchia,这是一个我总是忘记考虑的公平点。感谢上帝的愚弄。顺便说一句,OP讨论的是变量/实例,我理解,不是类。i、 e.
t=foo()
。在这种情况下,上述解决方案在python2下失败(使用旧样式或新样式的类。顺便说一句,为什么在类声明中使用paren?)我使用新样式的类,因此即使使用python2.7no,该解决方案也能正常工作,他希望确保变量是作为
isinstance
中的第二个参数传递到的有效类型,因此执行类型检查几乎是一种类型检查。