有没有一种方法可以为python模块中的所有函数添加前缀?
我有一个名为foo.py的模块,另一个模块bar.py从该模块将函数加载到其命名空间中。如何在foo.py中的所有函数前面加上字符串foo\ux。例如: foo.py:有没有一种方法可以为python模块中的所有函数添加前缀?,python,Python,我有一个名为foo.py的模块,另一个模块bar.py从该模块将函数加载到其命名空间中。如何在foo.py中的所有函数前面加上字符串foo\ux。例如: foo.py: def func1(): return "hello" def func2(): return "world" bar.py: from foo import * def do_something(): return foo_func1() 你在找这样的东西吗 def do_something( i ):
def func1():
return "hello"
def func2():
return "world"
bar.py:
from foo import *
def do_something():
return foo_func1()
你在找这样的东西吗
def do_something( i ):
import foo
f = getattr( foo, 'func'+str(i) )
return f()
print( do_something(1) ) # hello
print( do_something(2) ) # world
您可以使用oldfashion getattr函数通过字符串访问属性。这将获取一个对象和一个字符串,您可以在运行时创建它们
文件:
对不起,完全错读了问题
你可以简单地使用
import foo
然后使用以下命令调用函数:
foo.funct1() # hello
foo.funct2() # world
为什么不导入foo,然后执行foo.func1?这是使用模块的正确方法,似乎与您所追求的非常相似。如果不使用星型导入,则不会出现名称冲突问题。请看,名称空间是一个非常好的主意-让我们做更多这样的事情吧!-。