问题标签 [python-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - python如何调用从未在代码中定义的类?
我不知道在这里粘贴所有代码是否可行,但我正在查看此 git repo中的代码。
如果你看他们做的例子:
...但是没有EC2
课程。但是,看起来 inlibcloud\providers.py
有一个将 映射EC2
到EC2NodeDriver
in的字典libcloud\drivers\ec2.py
。正确的映射由 计算get_driver(provider)
,但该方法似乎没有在任何地方调用。
显然,我是 python 新手,但不是编程新手。我什至不确定我应该在文档中查找什么来解决这个问题。
python - 如果从不同路径导入,则重新导入模块
在我正在工作的一个大型应用程序中,几个人以不同的方式导入相同的模块,例如 import x 或 from y import x 的副作用是 x 被导入两次,如果有人依赖全局属性,可能会引入非常微妙的错误
例如,假设我有一个包含三个文件 mymodule.py、main.py 和init .py的包 mypakcage
mymodule.py 内容
main.py 内容
它打印
因为现在在两个不同的模块中有两个列表,类似地 A 类是不同的对我来说它看起来很严重,因为类本身将被不同地对待,例如下面的代码打印 False
问题:
有没有办法避免这种情况?除了强制该模块应该以一种方式导入外。这不能通过 python 导入机制来处理,我在 django 代码和其他地方也看到了一些与此相关的错误。
django - Django启动导入导致反向发生
这可能是一个孤立的问题,但我想我会问,以防有人对优雅的方法有想法来解决它。
这是设置:
问题是在 django 完成构建 url 之前尝试反向时,shortcuts.py 会导致抛出异常。但是,views.py 还不需要导入shortcuts.py(仅在实际调用mood_dispatcher 时使用)。明显的初始解决方案是:1)内联导入快捷方式(只是在风格上不是很好)2)让shortcuts.py懒惰地构建MOODS(只是更多的工作)
理想情况下,我希望能够在views.py的顶部说“导入快捷方式,加载网址时除外”
python - Python中的循环导入依赖
假设我有以下目录结构:
在a
包中__init__.py
,c
包被导入。但c_file.py
进口a.b.d
。
程序失败,尝试导入b
时说不存在。(它真的不存在,因为我们正在导入它。)c_file.py
a.b.d
如何解决这个问题?
python - Python 中的本地导入语句
我认为将 import 语句放置在使用它的片段附近,通过使其依赖关系更加清晰来提高可读性。Python会缓存这个吗?我应该关心吗?这是一个坏主意吗?
更多理由:它适用于使用库中神秘位的方法,但是当我将方法重构到另一个文件中时,我没有意识到我错过了外部依赖项,直到出现运行时错误。
python - 如何让 PyDev 编辑器选择性地忽略错误?
我在 Eclipse 下使用 PyDev 编写一些 Jython 代码。我有很多情况需要做这样的事情:
问题是 PyDev 总是会将此标记为错误并说“未解决的导入:ISubInterface”。代码工作得很好,只是我不想在我的代码旁边有这些小的白色/红色 X 标记,并且我的问题选项卡上到处都是这些错误。
有没有办法我可以在行尾添加一个魔术注释或类似的东西来让 PyDev 忽略错误错误,类似于你可以添加像“# pylint: disable-msg=E1101”这样的注释来让 PyLint 忽略错误?
此外,在 Jython 中使用 Java 接口时,我可能只是做错了。在这种情况下,我们将非常感谢您提供一点指导。
python - Python(和 Django)最佳导入实践
在导入代码的各种方式中,与其他方式相比,有哪些方式更适合使用?这个链接http://effbot.org/zone/import-confusion.htm简而言之就是
在正常情况下或除非您知道自己在做什么,否则不是导入 MyClass 的首选方式。(相反,更好的方法是:
然后在代码中,访问 MyClass 使用
)
简而言之,似乎上面引用的链接是说从模块中导入所有内容通常会更好,而不仅仅是模块的一部分。
但是,我链接的那篇文章确实很旧。
我还听说,至少在 Django 项目的上下文中,最好只导入您想要使用的类,而不是整个模块。据说这种形式有助于避免循环导入错误或至少使 django 导入系统不那么脆弱。有人指出,Django 自己的代码似乎更喜欢“from x import y”而不是“import x”。
假设我正在处理的项目不使用__init__.py
...的任何特殊功能(我们所有的__init__.py
文件都是空的),我应该使用哪种导入方法,为什么?
python - 列出作为 python 包一部分的所有模块?
有没有一种简单的方法可以找到作为 python 包一部分的所有模块?我发现了这个旧的讨论,这并不是真正的结论,但在我推出基于 os.listdir() 的自己的解决方案之前,我很想有一个明确的答案。
python - Python:重新加载使用'from X import Y'导入的组件Y?
在 Python 中,一旦我在解释器会话中使用 导入了模块 X import X
,并且模块在外部发生更改,我可以使用 .重新加载模块reload(X)
。然后,这些更改在我的口译会话中可用。
我想知道当我使用from X import Y
.
该语句reload Y
不起作用,因为 Y 本身不是模块,而只是模块内部的一个组件(在这种情况下是一个类)。
是否可以在不离开解释器会话(或导入整个模块)的情况下重新加载模块的各个组件?
编辑:
为了澄清起见,问题是关于从模块 X导入类或函数 Y并在更改时重新加载,而不是从包 X 中导入模块 Y。
python - `import module` 是否比 `from module import function` 更好的编码风格?
我们from module import function
称之为 FMIF 编码风格。
我们import module
称之为 IM 编码风格。
我们from package import module
称之为 FPIM 编码风格。
为什么 IM+FPIM 被认为是比 FMIF 更好的编码风格?(有关此问题的灵感,请参阅这篇文章。)
以下是一些让我更喜欢 FMIF 而不是 IM 的标准:
- 代码短:它允许我使用更短的函数名称,从而有助于坚持每行 80 列的约定。
- 可读性:
chisquare(...)
看起来比scipy.stats.stats.chisquare(...)
. 虽然这是一个主观标准,但我想大多数人都会同意。 - 易于重定向:如果我使用 FMIF 并且由于某种原因稍后想要重定向 python 以定义
function
fromalt_module
而不是module
我只需要更改一行:from alt_module import function
. 如果我要使用 IM,我需要更改很多行代码。
我对 IM+FPIM 可能优于 FMIF 的所有原因感兴趣,但特别是,我有兴趣详细阐述此处提到的以下几点:
IM 的优点:
- 易于在测试中模拟/注入。(我对模拟不是很熟悉,虽然我最近知道了这个术语的含义。你能在这里展示一下 IM 比 FMIF 更好的代码吗?)
- 通过重新定义一些条目来灵活更改模块的能力。(我一定是误解了一些东西,因为这似乎是 FMIF 优于 IM 的优势。请参阅上面我支持 FMIF 的第三个原因。)
- 数据序列化和恢复的可预测和可控行为。(我真的不明白 IM 或 FMIF 的选择如何影响这个问题。请详细说明。)
- 我知道 FMIF “污染了我的命名空间”,但除了听起来是负面的短语之外,我不理解这如何以任何具体方式伤害代码。
非常感谢。