关于变量作用域的简单问题:为什么主函数中声明的变量可以从外部函数访问? IE。为什么下面打印“yes”?
def run():
print var
if __name__ == '__main__':
var = 'yes'
run()
有没有办法“关闭它”?就编写良好的代码而言,忽略将变量作为参数传递给函数并仍然让代码运行是没有帮助的。
最佳答案
If 语句不会在 Python 中创建新作用域。没有办法“关闭它”;它是语言工作原理的核心部分。
您可以使用 main 函数将其包装在新的作用域中(这通常是您想要做的;避免困惑命名空间)并从您的 main-guard 中调用它,如下所示:
def run():
print var
def main():
var = 'yes'
run()
if __name__ == '__main__':
main()
关于python - 主函数中声明的变量的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41060747/