gpt4 book ai didi

python - 在Python中导入包

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:46 25 4
gpt4 key购买 nike

场景:

dirA/
__init__.py
file1.py
file2.py
dirB/
__init__.py
file11.py
file22.py
dirC/
__init__.py
file111.py
file222.py

我继续阅读https://docs.python.org/2/tutorial/modules.html#tut-standardmodules相反,当使用像 import item.subitem.subsubitem 这样的语法时,除了最后一个之外的每个项目都必须是一个包;最后一项可以是模块或包,但不能是前一项中定义的类、函数或变量。

现在,由于上面的阅读,我对一些数字有疑问:

  1. 当我写 import dirA.dirB 时,这个语句是否也导入 dirC 包内的模块,还是仅导入 dirB 内的模块?

  2. import dirA.dirB有什么用,因为当我使用这个语句时,仍然无法使用dirB子包内的模块?

我知道要使用 dirB 内的模块,我必须使用导入 dirA.dirB.file11

最佳答案

当你这样做时import dirA.dirB ,您只需导入包 dirB ,这意味着您基本上导入 __init__.pydirB.py ,如果__init__.py正在定义一些函数或类等,您可以在导入后使用它们 dirA.dirB .

示例 -

我的目录结构 -

共享/ a.py 包装/ init.py b.py

现在在pkg/__init__.py ,我有-

x = 1
import pkg.b

我的pkg/b.py是-

a = 1

现在在a.py ,我能做到-

import pkg
print(pkg.b.a)
print(pkg.x)

这会起作用,因为 __init__.py进口pkg.b因此可以使用 pkg.b.a 访问它.

关于python - 在Python中导入包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32056548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com