我正在将许多类似shell的操作整合到一个模块中。我希望能够做到:
pyscript.py:
from shell import *
basename("/path/to/file.ext")
并且shell.py模块包含:
shell.py:
from os.path import basename
问题是导入到shell模块的函数不可用,因为import语句只包含“shell”模块中的函数,类和全局定义,而不是导入的函数。
有没有办法解决这个问题?
答案 0 :(得分:3)
你确定你不只是使用错误的语法吗?这适用于2.6。
from shell import *
basename("/path/to/file.ext")
shell.py:
from os.path import basename
答案 1 :(得分:2)
这不是一个错误,它是一个功能: - )
如果在模块m2中导入m1然后将m2导入另一个模块,它将只从m2导入,而不是从m1导入。这是为了防止命名空间污染。
你可以这样做:
shell.py:
import os.path
basename = os.path.basename
然后,在pyscript.py中,您可以这样做:
from shell import * # warning: bad style!
basename(...)