if __name __ == function_name()

时间:2017-11-25 06:48:51

标签: python-3.x

为什么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 任何人都可以解释这背后的原因 提前谢谢

1 个答案:

答案 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")