Wie kann ich den Wert von exec in function zurückgeben?

Ich versuche:

def test(w,sli): s = "'{0}'{1}".format(w,sli) exec(s) return s print test("TEST12344","[:2]") 

Seine Rückkehr 'TEST12344' [: 2]

Wie man den Wert von exec in function zurückgibt

One Solution collect form web for “Wie kann ich den Wert von exec in function zurückgeben?”

exec() nicht nur Ausdrücke auswerten, es führt Code aus. Sie müssten eine Referenz innerhalb des exec() Aufrufs speichern.

 def test(w, sli): exec('s = "{}"{}'.format(w, sli)) return s 

Wenn Sie nur einen Ausdruck auswerten möchten, verwenden Sie eval() und speichern Sie einen Verweis auf den zurückgegebenen Wert:

 def test(w,sli): s = "'{0}'{1}".format(w,sli) s = eval(s) return s 

Allerdings würde ich empfehlen, exec() und eval() in jedem echten Code zu vermeiden, wann immer möglich. Wenn Sie es verwenden, stellen Sie sicher, dass Sie einen sehr guten Grund haben, dies zu tun.

  • Python-String-Ersatz, alle möglichen Kombinationen # 2
  • Python - Konvertierung von String in Liste
  • Shuffle string in python
  • Konvertieren Sie eine String-Darstellung eines Wörterbuchs in ein Wörterbuch?
  • Variable funktioniert nicht in Klammern
  • Wie kann ich eine Python-Zeichenfolge kopieren?
  • Mit Backslash in Python (nicht zu entkommen)
  • Google App Engine: Wie kann ich programmgesteuert auf die Eigenschaften meiner Model-Klasse zugreifen?
  • Prozess-Escape-Sequenzen in einer Zeichenfolge in Python
  • Finde viel String im Text - Python
  • Wie man eine Zeichenfolge von Ganzzahlen und Buchstaben aus einer for-Schleife anzeigt
  • Python ist die beste Programmiersprache der Welt.