我了解以下四行:
import bpy
import numpy as np
from sys import argv
from os import *
但是我从未见过以下几行:
from . uisun import *
from . hdr import sunposition
那点呢?它是指目录中的位置还是其他?文件uisun.py,sunposition.py,hdr.py是在相同的目录__init__.py它包含上述代码。顺便说一句,这来自Blender插件。
子模块经常需要相互引用。例如,环绕声模块可以使用回声模块。实际上,这样的引用非常普遍,以至于import语句首先查看包含的包,然后再查看标准模块的搜索路径。因此,环绕声模块可以简单地使用导入回声或从回声导入回声过滤器。如果在当前程序包(当前程序包是其子模块的程序包)中找不到导入的模块,则import语句将查找具有给定名称的顶级模块。
将包结构化为子包时(与示例中的声音包一样),可以使用绝对导入来引用同级包的子模块。例如,如果模块sound.filters.vocoder需要使用sound.effects包中的echo模块,则可以使用from sound.effects导入echo。
从Python 2.5开始,除了上述隐式相对导入之外,您还可以使用import语句的from模块导入名称形式编写显式相对导入。这些显式相对导入使用前导点表示相对导入中涉及的当前和父程序包。例如,在环绕声模块中,您可以使用:
from . import echo
from .. import formats
from ..filters import equalizer
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句