python中变量的所有可能类型

Rah*_*pta 0 python variables variable-types

我们如何知道变量的所有可能类型?考虑以下示例,

n = int(raw_input())

if n<50:
        a = 5
elif n<100:
         a = 6.8
else:
         a = 'abc'

print type(a)
Run Code Online (Sandbox Code Playgroud)

但是,它将输出为"int"或"float"或"str",具体取决于n的值...

我们不能拥有所有可能的变量类型吗?例如,上面应该给出类似的输出:

{整数,浮点,STR}

And*_*ite 5

您无法在运行时确定此信息,因为变量的类型取决于执行路径.据我所知,没有静态分析工具可以做到这一点.


Dav*_*nan 5

您必须枚举Python解释器已知的所有类型.我想这是可能的,但由于有这么多类型,它基本上没有意义.

Python是一种动态类型语言,因此它没有像C这样的静态类型语言具有相同意义的变量.在你的代码片段中,a它只是一个绑定到对象的名称.该对象可以是Python解释器已知的任何类型.

在使用动态类型语言进行编程并询问诸如此对象的类型之类的问题时,思维方式存在根本区别应该避免.相反,最好提出表格的问题,这个对象支持哪些操作?这种编程方法称为鸭子打字.