python - Python 如何区分不同的数据类型?

标签 python

对不起,如果这对你来说很笨,但我在学习 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)到函数对象,名称 firstsecond 被记录为参数名称,并将在 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/

相关文章:

python - pip3requirements.txt 充满垃圾

python - 如何在python3中键入提示matplotlib.axes._subplots.AxesSubplots对象

python - 绘制图像的 PSD 与 x/y 轴

python - Pandas - 如果列包含多个条件,Python 会删除行

python - 为什么 Python 中原始类型的子类占用更多内存?

python - 从 std :vector in Cython 中删除一个元素

python - python ECDSA 和 C micro-ecc 库之间的 ECDSA 签名和验证问题

python - F# 映射/集合理解

python - 应该如何在 Matplotlib (LTS) 2.2.0 上导入 ._cntr

python - 如何测试 pandas.Series 是否只包含特定类型(例如 int)?