为什么python调用被检查为name== function_name()的函数
当我在这个程序中运行这个程序时
def game():
print("1")
return("2")
def main():
print("game over")
if __name__==game():
print("3")
else:
print("4")输出是:1#这里调用了方法对策(),为什么会这样?4有人能事先解释一下原因吗?
发布于 2017-11-25 07:04:42
game()返回不等于__name__值的字符串"2",该变量引用in作用域模块的名称。
您的代码不容易阅读:我建议您添加空行,以明确不同函数之间的区别。下面是一个修改过的版本,它应该说明在执行它时会发生什么。
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")https://stackoverflow.com/questions/47483379
复制相似问题