You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么在Python中不创建新变量时,数据类型转换无法生效?

为什么Python中直接调用int()转换不改变原变量类型?

先看你给出的代码示例:

age = input("how old are you? ")
int(age)
print(type(age))
# <class 'str'>

age = input("how old are you? ")
age_as_int = int(age)
print(type(age_as_int))
# <class 'int'>

原因很简单:

  • Python里的字符串属于不可变类型,而且int()这类类型转换函数不会修改原变量本身——它只是基于原变量的数值,创建一个全新的整数对象并返回。
  • 如果不把这个返回的新对象赋值给某个变量,它会被Python的垃圾回收机制直接丢弃,原变量age还是指向最初的字符串对象,类型自然不会变。
  • 只有把int(age)的返回值赋值给变量(不管是新变量,还是重新赋值给age本身,比如age = int(age)),这个变量才会指向新的整数对象,类型也就变成int了。

内容的提问来源于stack exchange,提问作者Arthur Romo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:09:19