导入您自己的Python模块

时间:2014-12-09 05:35:27

标签: python

我理解以下四行:

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插件。

2 个答案:

答案 0 :(得分:1)

这就像在终端玩游戏一样。 ''表示当前目录(您运行程序的位置)和' ..'表示父目录。请阅读this以获取示例。

答案 1 :(得分:1)

IT Intra-package References

  

子模块通常需要相互引用。例如,环绕声模块可能使用echo模块。事实上,这样的引用是如此常见,以至于在查看标准模块搜索路径之前,import语句首先在包含包中查找。因此,环绕模块可以简单地使用导入回波或来自echo import echofilter。如果在当前包(当前模块是子模块的包)中找不到导入的模块,则import语句将查找具有给定名称的顶级模块。

当包被组织成子包时(与示例中的声音包一样),您可以使用绝对导入来引用兄弟包的子模块。例如,如果模块sound.filters.vocoder需要在sound.effects包中使用echo模块,它可以使用sound.effects import echo。

从Python 2.5开始,除了上面描述的隐式相对导入之外,您还可以使用import语句的from module import name形式编写显式相对导入。这些显式相对导入使用前导点来指示相对导入中涉及的当前和父包。例如,从环绕声模块中,您可以使用:

from . import echo
from .. import formats
from ..filters import equalizer