2011-10-06 39 views
3

我的脚本包含以下两行导入语句:为什么混合'从x进口y'和'进口x'不鼓励?

import os 
from os import path 

这似乎是我的脚本逻辑的做法:我用os.path很多时候,所以我想访问它path。另一方面,我需要os以外的其他方法,但很少,因此我可以编写os.access(...)为例。

为什么不鼓励?例如pychecker抱怨这个。

+0

是否有一个特别的原因,你不能只为'os.'写出3个额外的字符? – Amber

+0

为什么不只是'path = os.path' – lostyzd

+0

@lostyzd为什么你必须这样做才能避免无效的警告? – agf

回答

6

从模块导入名称并导入整个模块通常很奇怪。在这种情况下,你正在导入一个子模块,所以它看起来并不坏,虽然大多数人在他们的函数调用中只使用“os.path”。

只是因为pychecker不喜欢它并不意味着你不能这样做。关闭该警告。

+0

这就是为什么它是一个警告。 Pychecker不知道这是否是一个问题,所以你会得到通知。 –

0

这可能是因为您的脚本然后使用额外资源导入os.path两次。也许你应该叫出你需要的所有os的功能。

+3

模块只导入一次,不使用额外的资源。 – interjay

+0

即使在“它有两个名字”的意义上,'path'也没有被导入两次,因为它是一个模块,而不是'os'中的类。 – agf

+0

在这种情况下,可能只是不推荐使用,因为维护起来很麻烦。 – Chriszuma

相关问题