![]() |
1
3
我想这是一个范围界定的问题,如果你在你的构造函数中导入一个模块,你只能在你的构造函数中使用它,在import语句之后。 |
![]() |
2
2
所以问题是即使模块
你可能想看看这个
article on importing Python modules
,因为它有助于解释与
|
![]() |
3
1
在你的例子中,a在系统模块中。。但并不是sys.modules中的所有内容都在b的范围内。如果你想使用re,你也必须导入它。 有条件导入有时是可以接受的,但这不是其中之一。首先,在这种情况下,a和b之间的循环依赖是不幸的,应该避免(在Fowler的重构中有很多这样做的模式)。。也就是说,这里不需要有条件地进口。 b应该简单地导入a。您不直接在文件顶部导入它是为了避免什么? |
![]() |
4
0
基于程序逻辑有条件地导入代码模块是一种糟糕的方式。名字在代码中的任何地方都应该是相同的意思。想想调试时会有多困惑:
即使你没有范围界定问题(这是你最有可能遇到的),它仍然令人困惑。 将所有导入语句放在文件顶部。那是其他编码人员寻找它们的地方。 至于是使用“from foo import bar”还是只使用“import foo”,折衷的方法是更多地键入(必须键入“foo.bar()”或只键入“bar()”)而不是清晰和具体。如果您希望您的代码是真正可读和明确的,只需说“import foo”,并充分指定调用无处不在。记住,读代码比写代码难得多。 |
![]() |
tryingmybest09 · 设置出生日期排序不正确 2 年前 |
![]() |
Dane234345 · 从另一个文件中的函数导入变量 3 年前 |
![]() |
MBF · PHP导入/解析XML文件内容保存到数据库 3 年前 |
![]() |
benroths · PyQt5/Python3参考qss文件 3 年前 |
![]() |
rm.rf.etc · Jupyter笔记本电脑组织,带有可重用代码 3 年前 |
![]() |
artooras · 从本地文件导入到下一个文件。配置。js 3 年前 |
![]() |
ash · 在Solr中索引JSON文件名和JSON内容 7 年前 |