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



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

import irc
var = 1
func()

irc.py

def func():
    print var

当我尝试运行 main.py 时出现此错误

名称错误: 未定义全局名称"var"

如何让它工作?


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

import irc
import another
another.var = 1
irc.func()

irc.py

import another
def func():
    print another.var

another.py

var = 0

不要。把它传进去。尝试保持代码尽可能分离:一个模块不应依赖于另一个模块的内部工作原理。相反,尝试尽可能少地暴露。通过这种方式,您将保护自己,避免每次想要让事情表现得有点不同时都必须改变世界。

main.py

import irc
var = 1
func(var)

irc.py

def func(var):
    print var

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

func.py:

import __main__
def func():
    print(__main__.var)

main.py:

from func import func
var="It works!"
func()
var="Now it changes!"
func()

两个选项。

from main import var
def func():
    print var

这会将对原始名称的引用复制到导入模块。

import main
def func():
    print main.var

这将允许您使用其他模块中的变量,并允许您根据需要更改它。

好吧,函数中的 var 没有声明。 您可以将其作为参数传递。main.py

import irc
var = 1
func(var)

irc.py

def func(str):
    print str

Samir 所说的适用于 Python 2

对于 python 3,您需要这样做。

main.py

import irc
from irc import func
var = 1
func(var)
irc.py

irc.py

def func(var):
    print(var)

相关内容

  • 没有找到相关文章

最新更新