Verwenden von Eval (), um ein Python -Problem zu lösen, und möchte ein FeedbackPython

Python-Programme
Anonymous
 Verwenden von Eval (), um ein Python -Problem zu lösen, und möchte ein Feedback

Post by Anonymous »

Ich habe eine Funktion, die unter anderem andere Funktionen basiert, die auf Parametern basieren. Die Parameter sind Saiten. Also in seiner einfachsten Form: < /p>
function_caller("function1") will call function1()
function_caller("function2") will call function2()
etc
< /code>
Ich habe dies mit der Funktion Python Globals () verwaltet. Also: < /p>
def function_caller(choice):
globals()["chosen_function"] = choice
data = chosen_function()
reply data

the_result = function_caller("function1")
< /code>
Dies funktioniert recht gut. Ich verwende diese Methode in einigen meiner Projekte, also wollte ich mit einem Import experimentieren, anstatt den Code in jedem Projekt aufrechtzuerhalten. Ich könnte an dieser Stelle erwähnen, dass ich Python so lerne, wie ich gehe, und dies ist mein erster Ausflug in Importe. Also habe ich in jedem relevanten Projekt eine Tools.Py erstellt.def function_caller(choice):
globals()["chosen_function"] = choice
data = chosen_function()
reply data
< /code>
project.py:
import tools

def function1():

return

which_one = "function1"
the_result = tools.function_caller(which_one)
< /code>
Ich habe schnell gelernt, dass Globals () nicht das getan hat, was ich in den Namespaces erwartet hatte. Dies führt mich dazu, den Code in Tools.py von < /p>
zu ändern globals()["chosen_function"] = choice
data = chosen_function()
< /code>
zu < /p>
data = eval("__main__." + choice + "()")
< /code>
Es funktioniert, aber ich habe einige Beiträge gesehen, die vor der Verwendung von Eval () oder exec () warnen. Was denken die Experten?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post