为什么python调用的函数被检查为 name == function_name()
当我运行此程序时 在这个计划中
def game():
print("1")
return("2")
def main():
print("game over")
if __name__==game():
print("3")
else:
print("4")
输出是: 1#这里调用方法game(),为什么会这样? 4 任何人都可以解释这背后的原因 提前谢谢
答案 0 :(得分:0)
game()
返回不等于"2"
值的字符串__name__
,该变量引用范围模块中的名称。
您的代码不易阅读:我建议您添加空行以明确不同功能之间的区别。这是一个修改后的版本,应该说明执行时会发生什么。
def game():
print("I'm: " + __name__ + " executing game()")
print("1")
print("I'm going to return 2")
return("2")
def main():
print("I'm: " + __name__ + " executing main()")
print("game over")
print("I'm: " + __name__)
if __name__==game(): # game() is returning the string "2"
print("3")
else:
print("4")