2017-03-10 5 views
0

Wie konvertiere ich Kwargs Objekte in lokale Variablen? Ich bin ein Mathelehrer und ich möchte eine Hilfsfunktion schreiben, wo ich JS-Stil Template-Strings verwenden kann, um Probleme zu schreiben.Konvertieren von Kwargs in Variablen?

möchte ich so etwas wie dies zu tun:

TemplateString('{{a*b}} apples are shared among {{a}} children. How many apples do each child get?', {'a': 3, 'b': 5}) 
//return '15 apples are shared among 3 children...' 

ich suchen werde '{{}}' in Strings und rufen eval() auf, was im Inneren das ist. Aber zuerst muss ich {'a': 3, 'b': 5} in lokale Variablen a = 3 und b = 5 umwandeln. Die Variablen könnten int, float oder str sein. Was ist der beste Weg, dies zu tun?

+0

Ihr Wörterbuch Is 2 Elemente immer, 'a' und 'b' ? Wenn ja, tun Sie einfach 'int (dict ['a']) * int (dict ['b'])'. Ist es das was du willst? –

Antwort

2

Wenn Sie planen, eval zu verwenden, brauchen Sie nicht, sie überhaupt zu den Einheimischen zu konvertieren. eval takes optional globals and/or locals arguments definiert die aktiven Bereichsvariablen für diesen Ausdruck. Wenn Sie globals (das zweite Positions Argument) liefern und nicht locals (die dritten), dann wird globals als locals wiederverwendet werden, so zum Beispiel:

>>> eval('a * b', {'a': 5, 'b': 3}) 
15