假设我有一个名为的 python 包bestpackage
.
公约规定bestpacakge
也将是一个目录sys.path
其中包含一个__init__.py
让解释器假设它可以从中导入。
有什么方法可以为包名称设置一个变量,以便目录可以命名为与我导入它的指令不同的名称?有什么方法可以使命名空间不关心目录名称并尊重其他配置吗?
我的超级时尚客户端开发人员非常喜欢这些性感的something.otherthing.js
我们较小的副项目之一的项目名称!
EDIT:
为了澄清,我问题的主要目的是允许我的客户端人员继续使用现有约定(some.app.js)调用他们的“项目”(我们都添加到路径中的那个)文件夹中的目录,即使在某些情况下它们实际上是 python 包,将位于路径上并来源到import
内部声明。我意识到这实际上是一件非常可怕的事情,所以出于好奇我问了更多。因此,这里的部分大问题是回避这样一个事实:.
目录名称(以及假定的包名称)中的含义意味着属性访问。对于无法解决这个问题,我并不感到惊讶,我只是好奇导入背后的“魔法”是否可能更深入。
这里有一些很好的回应,但都依赖于执行某种经典导入,其中属性访问器.
会与目录名称冲突。
一个目录带有__init__.py
文件称为package.
不,包名称是always与目录相同。这就是 Python 发现包的方式,它将其与搜索路径上找到的目录名进行匹配,如果存在__init__.py
文件在该目录中找到匹配项并导入__init__.py
包含的文件。
您始终可以使用更短、更易于使用的名称将某些内容导入到本地模块命名空间中from module import something
or the import module as alias
syntax:
from something.otherthing.js import foo
from something.otherthing import js as bar
import something.otherthing.js as hamspam
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)