python - Python语言如何知道标识符的类型?

标签 python programming-languages

我最近遇到了这个问题..

How does python identifies the type of an identifier?

例如

a=5
b=6
c=a+b

c的值为11

哪里

x="hello"
y="world"
z=x+y

z 的值为“helloworld”

Python如何区分这两种情况?

最佳答案

在Python中,类型不与变量名相关联,而是与值相关联。名称“a”不包含任何类型信息,值“1”包含该信息(即它是一个“int”类)。

这是 C 和 Java 的契约,其中类型与变量名称相关联。

这正是 Curry 风格的打字系统和 Church 风格的系统之间的区别。

http://en.wikipedia.org/wiki/Simply_typed_lambda_calculus#Intrinsic_vs._extrinsic_interpretations

C 和 Java 使用 Church 类型(变量名具有类型),而 Python 和 JavaScript 使用 Curry 类型(值具有类型)。

关于python - Python语言如何知道标识符的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638847/

相关文章:

Python re.groups 不显示所有子组

python - 分配给 "_ "的原因

programming-languages - 什么是通用类型?

字符串中的python反向标记

python - 如何在 Mechanize 中设置与另一个字段具有重复名称的字段?

python - 我如何检查输入是否为英文

java - 在新的 Java 项目中使用还是不使用 Scala?

programming-languages - VHDL 图灵完整吗?

language-agnostic - 将一种语言翻译成另一种语言?

python 2.7 socket.send() 通用合约