将函数变量从一个python文件导入另一个

2024-10-04 09:30:46 发布

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

我想将函数中定义的变量导入另一个python文件

e1.py公司

 def abc():
     global a
     a=10

e2.py公司

^{pr2}$

我已经找过了,但没有找到正确的答案

以下是错误-

 Traceback (most recent call last):
 File "C:\Users\gkaur\Documents\MSO Editor Tool\e2.py", line 1, in <module>
 from e1 import abc
 File "C:\Users\gkaur\Documents\MSO Editor Tool\e1.py", line 2
 global a
 SyntaxError: name 'a' is parameter and global

Tags: 函数pyline公司toolglobaluserseditor
3条回答

您没有正确使用文件1中的函数,它应该是:

def abc():
    a = 10
    return a

您应该返回值。对于第二个文件,它应该是:

^{pr2}$

e1.abc()结尾没有(),它实际上不会告诉函数执行它的特定任务。在

在调用a之前,不会定义变量{}。在

正如您在repl中看到的dir(e1)help(e1)一样,e1没有变量{},只有一个函数abc。{{cd2>之后,{cd2>被设置为

>>> import e1
>>> dir(e1)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'abc']
>>> e1.abc()
>>> dir(e1)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a', 'abc']
>>> e1.a
10

ae1中的模块全局变量。除了在abc中设置之外,它与该函数无关;abc.a是一个错误。在

import e1
def defi():
    c = e1.a
    print(c)

# This should produce an error
defi()   

但是,除非在e1的全局范围内给a一个值,否则它在调用abc之前不存在。在

^{pr2}$

相关问题 更多 >