Ich habe Schwierigkeiten, eine bestimmte Funktion aus einem Wörterbuch vordefinierter Funktionen zurückzugeben. Hier ist mein Code:Wörterbuch der Funktionen gibt jede Funktion zurück
import random
def bos1():
print ("function 1")
def bos2():
print ("function 2")
def bos3():
print("function 3")
def bos4():
print("function 4")
count = 0
while True :
if count <4:
bos = "bos"
poz = random.randint(3, 4)
bos = bos+str(poz)
bosdict = {'bos1': bos1(),'bos2':bos2(),'bos3':bos3(),'bos4':bos4()}
count += 1
print("please only printe one",bosdict[bos])
print("count:\n", count)
input("")
else:
bos = "bos"
poz = random.randint(1, 2)
bos = bos+str(poz)
bosdict = {'bos1': bos1(),'bos2':bos2(),'bos3':bos3(),'bos4':bos4()}
count += 1
print("please only printe one",bosdict['bos'])
print("count:\n", count)
input("")
Ich habe eine erfolgreiche Version dieses Programms erstellt, das arithmetische Funktionen verwendet. Es wird die entsprechende Funktion relativ zu der Zeichenfolge zurückgegeben, die bei jeder Iteration verkettet wurde. Bei Funktionen, die eine Zeichenfolge zurückgeben sollen, werden jedoch bei jeder Iteration alle vier Funktionen im Wörterbuch zurückgegeben. Warum passiert das und wie kann ich es so verhalten wie das arithmetische Wörterbuch?
Ändern Sie Ihre 'print' Aufrufe zu' return' Anweisungen ist die 'bos' Funktionen –
@Chris_Rands ja, aber das würde die Funktionen nicht dynamisch aufrufen. Sie dynamisch aufzurufen, ist wahrscheinlich besser, aber nur wenn Parameter für die Funktionen vorhanden sind. –