我已经厌倦了阅读相对进口的一次性使用案例,所以我想我要问一个如何从目录上面进行相对导入的例子和 bellow ,用于导入模块函数和类对象。
目录结构:
.
├── lib
│ ├── __init__.py
│ └── bar.py
└── src
├── main.py
└── srclib
├── __init__.py
└── foo.py
bar.py
def BarFunc():
print("src Bar function")
class BarClass():
def __inti__(self):
print("src Bar Class")
def test(self):
print("BarClass working")
foo.py
def FooFunction():
print("srclib Foo function")
class FooClass():
def __init__(self):
print("srclib Foo Class")
def test(self):
print("FooClass working")
问题:python 3中为这些用例导入的语法是什么?
main.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()
答案 0 :(得分:0)
这一切都取决于你从哪里开始python
翻译。在您的情况下,我建议您在进行以下更改时从项目的根目录启动解释器:
在档案src/srclib/__init__.py
中添加:
from . import foo
执行此操作的原因是在__init__.py
文件中明确说明要从模块导入的内容。
在main.py
文件中,添加以下内容:
from lib import bar
from src.srclib import foo
希望这有帮助!