2016-08-18 3 views
4

Ich stoße auf die unten in einigen Code von einem Ex-Mitarbeiter.Was macht diese seltsame Formatzeichenfolge "{[[[]}"?

der Code wird nicht von überall aufgerufen, aber meine Frage ist, kann es tatsächlich etwas Nützliches tun, wie es ist?

def xshow(x): 
    print("{[[[[]}".format(x)) 
+0

Die im Titel und im Code verwendete Zeichenfolge ist unterschiedlich. Titel hat drei linke Klammern, Code hat vier ... –

Antwort

4

dass ein Format-String mit einem leeren Argumente Namen ist und einen Element-Index (den Teil zwischen [ und ] für einen Schlüssel [[[ (die Indizes auf ganze Zahlen nicht sein.) Für den Wert Es wird gedruckt dass Schlüssel

Berufung:.

xshow({'[[[': 1}) 

druckt 1

0

On Mit dem interaktiven Interpreter kann man so etwas experimentell untersuchen.

>>> xshow(None) 
Traceback (most recent call last): 
    File "<pyshell#12>", line 1, in <module> 
    xshow(None) 
    File "<pyshell#11>", line 1, in xshow 
    def xshow(x): print("{[[[[]}".format(x)) 
TypeError: 'NoneType' object is not subscriptable 

# So let us try something subscriptable. 
>>> xshow([]) 
Traceback (most recent call last): 
    File "<pyshell#13>", line 1, in <module> 
    xshow([]) 
    File "<pyshell#11>", line 1, in xshow 
    def xshow(x): print("{[[[[]}".format(x)) 
TypeError: list indices must be integers or slices, not str 

# That did not work, try something else. 
>>> xshow({}) 
Traceback (most recent call last): 
    File "<pyshell#14>", line 1, in <module> 
    xshow({}) 
    File "<pyshell#11>", line 1, in xshow 
    def xshow(x): print("{[[[[]}".format(x)) 
KeyError: '[[[' 

# Aha! Try a dict with key '[[['. 
>>> xshow({'[[[':1}) 
1 

Jetzt lesen Sie vielleicht das Dokument.