Python函数返回列表索引疑问:为何print(combine(1)[2])输出为2?
问题解析:为什么
print(combine(1)[2])输出是2 核心误区澄清
你混淆了函数参数的传递顺序和返回列表的索引位置,下面拆解每一步的逻辑:
函数参数的传递规则
Python的位置实参是从左到右依次对应函数定义的形参,combine(1)里的1是传给函数的第一个形参width,不是你以为的“位置1的参数”。函数定义里的参数顺序是:width(无默认值)→height(默认2)→depth(默认0)→is_3D(默认False)。所以调用combine(1)时,相当于:combine(width=1, height=2, depth=0, is_3D=False)返回列表的索引对应关系
函数返回的列表是[is_3D, width, height, depth],索引从0开始计数:- 索引0:
is_3D→ False - 索引1:
width→ 1 - 索引2:
height→ 2(这就是默认值) - 索引3:
depth→ 0
- 索引0:
所以combine(1)[2]是取返回列表的第3个元素(索引2),也就是height的默认值2,最终输出2。
内容的提问来源于stack exchange,提问作者Anna
相关产品推荐
相关产品推荐

