当我跑步时
def func(one,two):
print(one)
two
func("1",print("hi"))
func("2",print("hello"))
在解释器会话中,我得到输出:
hi
1
hello
2
代码不应该从上到下运行吗?我期望的输出是:
1
hi
2
hello
答案 0 :(得分:4)
print
语句返回None
,您将作为第二个参数传递给您的函数。
致电func("1", print("hi"))
时会发生什么,print("hi")
会被执行,因此您会先看hi
。
之后,调用func("1", None)
,这将执行
print("1")
None
,您将看到的唯一输出是1
,因为声明
None
什么也没做。
答案 1 :(得分:2)
调用函数时,首先计算参数。因此,“hi”已经打印出来。在计算参数时,会将它们传递给函数,并调用函数打印“1”。