Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Python中的包导入模块_Python - Fatal编程技术网

如何从Python中的包导入模块

如何从Python中的包导入模块,python,Python,一般来说,我对Python和编程相当陌生,对包有点问题 我创建了一个名为Package_Test的目录,并在其中创建了一个名为Test Package的文件,名为FUNCTIONS 此包包含init文件和文件添加。add包含一个函数,也称为add,返回两个给定数字的和 目录树如下所示: 包装试验 试验 功能 init 加 我想在文件测试中使用包中的add函数,并尝试了下面的代码,但总是出现错误 回溯(最近一次调用上次):文件 “D:/CLRS_代码/PACKAGE_测试/TEST.py”,第1行

一般来说,我对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文件中:

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)”调用
  • 从FUNCTIONS.add导入*
    • 这将允许您以“函数名(参数)”的形式调用该文件中的任何函数
    • 示例中的add函数将通过“add(number1,number2)”调用

  • 首先,清空uuu init_uuuu.py文件

    然后在Test.py中将“导入函数”更改为:

  • 导入函数。添加
    • 这意味着您需要以“FUNCTIONS.add.function\u name(arguments)”的形式调用该文件中的任何函数
    • 示例中的add函数将通过“FUNCTIONS.add.add(number1,number2)”调用
  • 从FUNCTIONS.add导入*
    • 这将允许您以“函数名(参数)”的形式调用该文件中的任何函数
    • 示例中的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文件中写入一些东西,长的导入行可能会被跳过,这是真的吗?