我似乎找不到模块绑定(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/