如何在Python中更改导入组的名称?

2024-10-04 05:32:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个改变名称的模块导入所有方法。在

例如,而不是

from module import repetitive_methodA as methodA, \
    repetitive_Class1 as Class1, \
    repetitive_instance4 as instance4

我想买些跟

^{pr2}$

这是对这个clumsy unanswered question的重新表述,我还没有找到一个解决方案或类似的问题。在


Tags: 模块方法fromimport名称asmodulequestion
2条回答

我要做的,创造一个工作。。。在

包括在当前目录中有一个名为some_file.py的文件,它由。。。在

# some_file.py
def rep_a():
    return 1

def rep_b():
    return 2

def rep_c():
    return 3

当您导入某个对象时,您将创建一个调用方法的对象。这些方法是文件的类、变量、函数。在

为了得到你想要的,我想最好添加一个新对象,其中包含你想要重命名的原始函数。函数redirect_function()将一个对象作为第一个参数,并将迭代该对象的方法(简而言之,这些方法是文件的函数):然后,它将创建另一个对象,该对象将包含您首先要重命名的函数的指针。在

太长了,读不下去了,函数将创建另一个包含原始函数的对象,但是函数的原始名称将<> > ><>在

参见下面的示例。:)

^{pr2}$

这个输出。。。在

1 2 3
1 2 3

你可以这样做:

import module
import inspect
for (k,v) in inspect.getmembers(module):
    if k.startswith('repetitive_'):
        globals()[k.partition("_")[2]] = v

编辑回应评论“这个答案打算如何使用?”

假设module如下所示:

^{pr2}$

然后运行重命名循环后,以下代码:

A()
B()

产生以下输出:

This is repetitive_A
This is repetitive_B

相关问题 更多 >