很简单的问题,但对我来说是一个好奇...
假设我们有一个字符串项目列表。如果我们在列表中的每个元素上调用内置函数 str
,这似乎是多余的,因为这些项目已经是字符串。幕后会发生什么,特别是针对 Python,但也对其他语言感兴趣。解释器是否已经看到该项目是一个字符串而不调用 str
函数?或者它会这样做并返回一个字符串,一个字符串的字符串是什么意思?
最佳答案
测试很简单:
>>> a = 'a'
>>> id(a)
4298835424
>>> id(str(a))
4298835424
>>> a is str(a)
True
是同一个对象。
经过测试并适用于 CPython 2.7.、3.3.、PyP 1.9.、IronPython 2.0
不是否与 Jython 2.5 一起工作:
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) 64-Bit Server VM (Apple Inc.)] on java1.6.0_45
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 'a'
>>> id(a)
2
>>> id(str(a))
3
>>> id(str(a))
4
>>> a is str(a)
False
关于python - 冗余函数调用会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962282/