nennen nur die ausgewählt Funktion, nicht beide von ihnen:
random.choice([a,b])()
Nachfolgend finden Sie eine Demonstration:
>>> import random
>>> def a():
... print "a"
...
>>> def b():
... print "b"
...
>>> random.choice([a,b])()
a
>>> random.choice([a,b])()
b
>>>
Ihre alten Code beide Funktionen aufgerufen, wenn die Liste [a(),b()]
erstellt wurde , wodurch Python sowohl a
als auch b
ausgibt. Danach sagte er random.choice
aus der Liste [None, None]
zu wählen, was nichts tut. Sie können diese von der Demonstration siehe unten:
>>> [a(),b()]
a
b
[None, None]
>>>
Der neue Code random.choice
jedoch verwendet zufällig aus der Liste ein Funktionsobjekt wählen [a,b]
:
>>> random.choice([a,b])
<function b at 0x01AFD970>
>>> random.choice([a,b])
<function a at 0x01AFD930>
>>>
Anschließend ruft sie nur diese Funktion.
Funktionen liefern None
standardmäßig. Da a
und b
keine Rückgabeanweisungen enthalten, geben sie jeweils None
zurück.
Sie wissen nicht, wie ich das verpasst, wunderbar funktioniert, danke! – px06
Woah !! Python ist so toll !!! –