Ich habe das folgende Stück Code.Python. Rufen Sie eine Funktion innerhalb einer anderen Funktion
def num_dim(response_i, m):
for response_j in response_i['objcontent']:
if response_i['objkey']== 'explorecube_dimvalues':
mm = [response_j['title']]
m.append(mm)
m=(len(m))
return m
if __name__=='__main__':
for response_i in response['response']:
m=[ ]
x=0
def num_dim_2(response_i, m):
if response_i['objkey']== 'explorecube_dimvalues':
m = num_dim(response_i, m)
print(m)
return m
num_dimentions= num_dim_2 (response_i, m)
print(num_dimentions)
Der Ausgang für print(m)
ist:
3
aber die Ausgabe für print(num_dimentions)
ist:
[ ]
[ ]
3
[ ]
, die ich erwartet hatte nur 3.
Wer weiß, wie kann ich das beheben Dieses Problem (erhalten Sie den Wert von 3 als endgültige Ausgabe). Vielen Dank.
Warum sind Sie zu schaffen die Funktion in der for-Schleife? Erstellen Sie einfach die Funktion wie zuvor und rufen Sie sie bei Bedarf an. Auch wissen wir nicht, welche Antwort ['Antwort'] ist, so ist es schwierig, die Schleife zu verstehen –
Sie verstehen, dass Sie Ihre Funktion Eingänge ändern, richtig? Sie ändern den Parameter 'm' in Ihren Funktionen (was eine Liste ist und so als Referenz übergeben wird), und Sie geben sie auch zurück ?! Es ergibt keinen Sinn. Das ganze Stück Code ist Kauderwelsch. –