对不起,如果这对你来说很笨,但我在学习 C++ 和 Java 后才开始学习 Python,我想知道我到底怎么才能声明像 id = 0
这样的变量?和 name = 'John'
没有任何int
的或string
在前面!我想也许是因为没有 '
是一个数字,但是 Python 是如何计算出类似 def increase(first, second)
的东西的呢?而不是像 int increase(int first, int second)
这样的东西在 C++ 中?!
最佳答案
当然,您提到的文字对象带有(指向;-)它们自己的类型,因此当名称绑定(bind)到该对象时,类型问题就不会出现——对象总是有一个类型,即名称不会——只是将其委托(delegate)给它所绑定(bind)的对象。
def increase(first, second):
中没有“搞清楚”——名称 increase
绑定(bind)到函数对象,名称 first
和 second
被记录为参数名称,并将在 increase
被调用时绑定(bind)(很可能在不同点绑定(bind)到不同类型的对象)。
假设正文是 return first + second
—— 调用 increase('foo', 'bar')
将愉快地返回 'foobar '
(将添加委托(delegate)给对象,在本例中是字符串),也许稍后调用 increase(23, 45)
会很高兴地返回 68
-- 再次通过将添加委托(delegate)给在调用时绑定(bind)到这些名称的对象,在本例中是整数。如果您使用不兼容的类型进行调用,您将得到一个异常,因为委托(delegate)的加法操作无法理解这种情况——没什么大不了的!
关于python - Python 如何区分不同的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445193/