Python相对进口

2024-09-26 18:07:02 发布

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

我已经厌倦了阅读相对导入的一次性用例,所以我想作为一个问题来获得一个例子,说明如何从上面的和下面的目录进行相对导入,以便同时导入模块函数和类对象。在

目录结构:

.
├── lib
│   ├── __init__.py
│   └── bar.py
└── src
    ├── main.py
    └── srclib
        ├── __init__.py
        └── foo.py

棒.py

^{pr2}$

食品

def FooFunction():
        print("srclib Foo function")

class FooClass():
        def __init__(self):
                print("srclib Foo Class")
        def test(self):
                print("FooClass working")

问题:在python3中为这些用例导入什么语法?

主.py

# What is the syntax to import in python 3?

# I want to be able to call FooFunc()
foo.FooFunc()

# I want to be able to create a FooClass() object
foo_class = foo.FooClass()
foo_class.test()

# I want to be able to call FooFunc()
bar.BarFunc()

# I want to be able to create a BarClass() object
bar_class = bar.BarClass()
bar_class.test()

Tags: topytestfooinitdefbarable
1条回答
网友
1楼 · 发布于 2024-09-26 18:07:02

这完全取决于您从何处启动python解释器。在您的情况下,我建议您在进行以下更改时从项目的根目录启动解释器:

在文件src/srclib/__init__.py中添加:

from . import foo

这样做的原因是在__init__.py文件中显式地说明要从模块导入什么。在

main.py文件中,添加以下内容:

^{pr2}$

希望这有帮助!在

相关问题 更多 >

    热门问题