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

2024-05-20 09:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文件main.py和irc.py。
主.py

import irc
var = 1
func()

循环周期

def func():
    print var

当我试图运行main.py时,我得到了这个错误

NameError: global name 'var' is not defined

如何让它工作?

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

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

循环周期

import another
def func():
    print another.var

另一个.py

var = 0

Tags: 文件namepyimportmainvardefirc
3条回答

不要。把它递进来。尽量保持代码的解耦:一个模块不应该依赖另一个模块的内部工作。相反,尽量少曝光。这样,你就可以保护自己,不必每次你想让事情变得有点不同的时候就改变世界。

main.py

import irc
var = 1
func(var)

irc.py

def func(var):
    print var

好吧,这是我的代码,它工作得很好:

函数py:

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

主.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

这将允许您使用来自另一个模块的变量,并允许您根据需要对其进行更改。

相关问题 更多 >