Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以为python模块中的所有函数添加前缀?_Python - Fatal编程技术网

有没有一种方法可以为python模块中的所有函数添加前缀?

有没有一种方法可以为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 ):

我有一个名为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 ):
    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?这是使用模块的正确方法,似乎与您所追求的非常相似。如果不使用星型导入,则不会出现名称冲突问题。请看,名称空间是一个非常好的主意-让我们做更多这样的事情吧!-。