python - 使用 "name"时如何从模块中获取 "import module as name"

标签 python python-2.7

我似乎找不到模块绑定(bind)到的实际名称存储在哪里。例如:

import re as my_re

print my_re.__name__ # Output is "re," not "my_re"

我希望能够获得导入模块的名称,而不是模块的实际名称。

我的用例是我有一个将函数对象作为参数的函数,并且需要能够确定它绑定(bind)到什么名称。这是一个更详尽的示例:

import module as my_module

def my_func(in_func):
    print in_func.__bound-name__ # Or something to this effect

my_func(my_module.function1) # Should print "my_module.function1"

最佳答案

我会将模块名称作为字符串传递,然后使用 globals() 获取模块以在函数中使用。假设您将 'np' 传递给函数,那么 globals()['np'] 将返回该函数。

In [22]: import numpy as np
In [23]: def demo(A):
    ...:     a = globals()[A]
    ...:     print(a.array([i for i in range(10)]))
    ...:

In [24]: demo('np')
[0 1 2 3 4 5 6 7 8 9]

关于python - 使用 "name"时如何从模块中获取 "import module as name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52912104/

相关文章:

线程中的python3 websocket

Python - 从主文件运行多个Python脚本

python - Iteritems 返回格式化的字符串

linux - 通过python进行glob函数后的文件编辑

python - 为什么这个 python boto S3 分段上传代码不起作用?

python - 获取用户在 Flask 中的位置

python - SQLAlchemy 无缘无故发出交叉连接

python - 使用 Python 2.7 在 Windows 上运行 Scapy

python - 在 Windows 中安装 eyed3

Python DataFrame 连接特定列索引?