Python:如何在模块中使用主文件中的变量?

gr5*_*r56 7 python global-variables

我有2个文件main.py和irc.py.
main.py

import irc
var = 1
func()
Run Code Online (Sandbox Code Playgroud)

irc.py

def func():
    print var
Run Code Online (Sandbox Code Playgroud)

当我尝试运行main.py时,我收到此错误

NameError:未定义全局名称'var'

如何使它工作?

@Edit
我认为有一个更好的解决方案但不幸的是我找到的唯一一个是制作另一个文件并将其导入两个文件
main.py

import irc
import another
another.var = 1
irc.func()
Run Code Online (Sandbox Code Playgroud)

irc.py

import another
def func():
    print another.var
Run Code Online (Sandbox Code Playgroud)

another.py

var = 0
Run Code Online (Sandbox Code Playgroud)

Sam*_*war 11

别.传递它.尝试并尽可能地将代码保持分离:一个模块不应该依赖另一个模块的内部工作.相反,尝试尽可能少地暴露.通过这种方式,您可以保护自己不必每次想要让事情变得有点不同时改变世界.

main.py

import irc
var = 1
func(var)
Run Code Online (Sandbox Code Playgroud)

irc.py

def func(var):
    print var
Run Code Online (Sandbox Code Playgroud)


Kab*_*bie 6

嗯,这是我的代码工作正常:

func.py:

import __main__
def func():
    print(__main__.var)
Run Code Online (Sandbox Code Playgroud)

main.py:

from func import func

var="It works!"
func()
var="Now it changes!"
func()
Run Code Online (Sandbox Code Playgroud)