访问Python模块中的别名函数

时间:2010-08-20 18:13:01

标签: python

我正在将许多类似shell的操作整合到一个模块中。我希望能够做到:

pyscript.py:
from shell import *
basename("/path/to/file.ext")

并且shell.py模块包含:

shell.py:
from os.path import basename

问题是导入到shell模块的函数不可用,因为import语句只包含“shell”模块中的函数,类和全局定义,而不是导入的函数。

有没有办法解决这个问题?

2 个答案:

答案 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(...)