如果使用变量名,Python将不允许我从同一目录中的另一个文件中调用函数。
我尝试了exec()
def Index():
Functions = ["","Decimal_Into_Hex"]
for x in range(1,len(Functions)):
print(x,Functions[x])
try:
Function_To_Call = int(input("Which task would you like to call: "))
except:
print("Please enter a number")
Index()
else:
FileName = Functions[Function_To_Call]
Function = Functions[Function_To_Call]+"()"
try:
import FileName as Imp
except:
print("Not a file")
Index()
else:
Imp.Function
Index()
应该从也称为Decimal_Into_Hex的文件中获取函数Decimal_Into_Hex,其目的是能够从一个单一的组织空间调用函数,但是它只会出错。我已经通过放置实际的文件名和函数名来使其工作了,但是我想使其仅从列表中的变量中调用。
答案 0 :(得分:0)
我相信您的问题出在这一行:
Function = Functions [Function_To_Call] +“()”
起飞+"()"
,然后放()
。应该将函数作为函数调用,而不是像现在这样被称为混合函数。
答案 1 :(得分:0)
这应该可以帮助您入门。
import importlib # import a module to help you import so that you can import with your import
filename = function = 'Decimal_To_Hex'
imp = importlib.import_module(filename) # imports the module 'Decimal_To_Hex'
getattr(imp, function)() # calls Decimal_To_Hex.Decimal_To_Hex()