如何从Python中的包导入模块
一般来说,我对Python和编程相当陌生,对包有点问题 我创建了一个名为Package_Test的目录,并在其中创建了一个名为Test Package的文件,名为FUNCTIONS 此包包含init文件和文件添加。add包含一个函数,也称为add,返回两个给定数字的和 目录树如下所示: 包装试验 试验 功能 init 加 我想在文件测试中使用包中的add函数,并尝试了下面的代码,但总是出现错误 回溯(最近一次调用上次):文件 “D:/CLRS_代码/PACKAGE_测试/TEST.py”,第1行,在 导入函数文件“D:\CLRS\u code\PACKAGE\u TEST\FUNCTIONS\uuuuu init\uuuuuu.py”,第2行,在 从添加导入添加模块NotFoundError:没有名为“添加”的模块 在我写的add文件中:如何从Python中的包导入模块,python,Python,一般来说,我对Python和编程相当陌生,对包有点问题 我创建了一个名为Package_Test的目录,并在其中创建了一个名为Test Package的文件,名为FUNCTIONS 此包包含init文件和文件添加。add包含一个函数,也称为add,返回两个给定数字的和 目录树如下所示: 包装试验 试验 功能 init 加 我想在文件测试中使用包中的add函数,并尝试了下面的代码,但总是出现错误 回溯(最近一次调用上次):文件 “D:/CLRS_代码/PACKAGE_测试/TEST.py”,第1行
def add(x, y):
return x + y
from add import add
import FUNCTIONS
print(add(4,2))
在init文件中,我写道:
def add(x, y):
return x + y
from add import add
import FUNCTIONS
print(add(4,2))
在我编写的测试文件中:
def add(x, y):
return x + y
from add import add
import FUNCTIONS
print(add(4,2))
我附上了一张照片,使整个事情更清楚
我将非常感谢你的帮助
您可以使用
导入函数.add.add as add
或from FUNCTIONS.add导入添加
。这两种方法都允许您每次以全名引用add
函数。您可以使用import FUNCTIONS.add.add as add
或from FUNCTIONS.add import add
。这两种方法都允许您每次通过函数的全名来引用add
函数。首先,清空uuu init_uuuu.py文件
然后在Test.py中将“导入函数”更改为:
- 这意味着您需要以“FUNCTIONS.add.function\u name(arguments)”的形式调用该文件中的任何函数
- 示例中的add函数将通过“FUNCTIONS.add.add(number1,number2)”调用
- 这将允许您以“函数名(参数)”的形式调用该文件中的任何函数
- 示例中的add函数将通过“add(number1,number2)”调用
首先,清空uuu init_uuuu.py文件 然后在Test.py中将“导入函数”更改为:
- 这意味着您需要以“FUNCTIONS.add.function\u name(arguments)”的形式调用该文件中的任何函数
- 示例中的add函数将通过“FUNCTIONS.add.add(number1,number2)”调用
- 这将允许您以“函数名(参数)”的形式调用该文件中的任何函数
- 示例中的add函数将通过“add(number1,number2)”调用
from FUNCTIONS.add import add
我想,只要显示文件结构的树,就可以节省大量的键入。我现在尝试了这个方法,效果很好,但前提是我从init中删除了“from add import add”行。但我在某个地方读到,通过在init文件中写入某些内容,长导入行可能会被跳过,这是真的吗?from FUNCTIONS.add import add
我认为只需显示文件结构的树,就可以节省大量键入。我现在尝试了这个方法,但只有在我从init中删除“from add import add”行的情况下,它才能工作。但是我在某个地方读到,通过在init文件中写入一些东西,长的导入行可能会被跳过,这是真的吗?