Stu*_*t C 5 python variables scope
关于变量作用域的简单问题:为什么主函数中声明的变量可以从外部函数访问?即为什么下面打印“yes”?
def run():
print var
if __name__ == '__main__':
var = 'yes'
run()
Run Code Online (Sandbox Code Playgroud)
有没有办法“关闭它”?就编写好的代码而言,忽略将变量作为参数传递给函数并仍然让代码运行是没有帮助的。
If 语句不会在 Python 中创建新作用域。没有办法“关闭它”;它是语言工作原理的核心部分。
您可以使用 main 函数将其包装在新的作用域中(这通常是您想要做的;避免混乱命名空间)并从您的主保护中调用它,如下所示:
def run():
print var
def main():
var = 'yes'
run()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)