Ich versuche, zu implementieren, um Funktionalität in Python zu wechseln.Implementieren Sie Switch in Python
Beispiel:
>>> def f(x):
return {
'report/1/client_1_2001.txt':'10.7.0.151 -> 10.7.0.152',
'report/1/client_1_3001.txt':'10.7.0.151 -> 10.7.0.153',
}.get(x,'No mapping')
>>> f('report/1/client_1_3001.txt')
'10.7.0.151 -> 10.7.0.153'
ich eine separate Funktion geschrieben haben, die die Kombinationen alle
drucktdef msg():
for x in range(1,9):
for j in range(1,9):
if x == j:
continue
else:
print "'report/%s/client_%s_%s00%s.txt':'10.7.0.15%s -> 10.7.0.15%s'"%(x,x,j,x,x,j)
ich oben Funktion innerhalb einer anderen Funktion nenne
def f(x):
return {msg()}.get(x,'No mapping')
Wenn ich versuche um damit auf den Wert zuzugreifen:
print f('report/2/client_2_1002.txt')
Ich sehe diesen Fehler:
return {msg()}.get(x,'No mapping')
AttributeError: 'set' object has no attribute 'get'
Kann mir jemand mitteilen, ob ich etwas bin hier fehlt?
Was erwarten Sie 'get' es zu tun? Du hast ein Set erstellt. Sets bieten keine Möglichkeit, bestimmte Elemente zu erhalten. – BrenBarn
Kann ich den Wert der Funktion msg() trotzdem im selben Format ersetzen wie beim Drucken der Ausgabe? damit ich nicht alles in def def (x) -Funktion schreiben muss, ist es mein Ziel, '10 .7.0.151 -> 10.7.0.153'' zu erhalten, wenn ich' f ('report/1/client_1_3001. txt ') 'wie oben in" Beispiel "gezeigt. –
Ändern Sie 'msg', um ein Diktat zu erstellen, anstatt eine Menge Dinge zu drucken. –