【问题标题】:Built in function undefined in imported function导入函数中未定义的内置函数
【发布时间】:2024-04-17 22:55:01
【问题描述】:

我想我错过了 Python 中导入工作方式中的一些重要内容,我找不到解决方案。我将问题简化为简单的表达式: 我有两个文件: test_fonctions.py

def fonction2(x):
    return sqrt(x)

test_preambule.py

from math import sqrt

这些文件放在名为 lib 的子文件夹中,其中还包含一个名为 init.py

的空文件

当我在主文件中运行此代码时:

exec(open("lib/test_preambule.py").read())
from lib.test_fonctions import *

print(sqrt(5))
print(fonction2(5))

sqrt 工作正常,但第二个函数产生:

文件“....\Tests\lib\test_fonctions.py”,第 2 行,在 fonction2 返回 sqrt(x) NameError: 名称“sqrt”未定义

未定义但已定义,在工作区中列为 builtin_function_or_method...

我错过了什么?

(真正的问题是:“有没有办法让我的导入正常工作?”)

【问题讨论】:

    标签: python-3.x import


    【解决方案1】:

    我通过执行人员替换导入找到了营业额

    exec(open('./lib/test_preambule.py').read())
    exec(open('./lib/test_fonctions.py').read())
    

    但如果有人有解释,我很乐意听到。

    【讨论】: