2017-10-02 1 views
0

Ich lese einen Quellcode und bekomme ein paar Zweifel. Die 'Config' hier ist ein Diktat.Warum konnte dict.get ('', None) eine Liste in Python zurückgeben?

 server_port = config.get('server_port', None) 

warum konnte config.get ('server_port', None) eine Liste zurückgeben?

if server_port: 
     if type(server_port) == list: 
      for a_server_port in server_port: 
       config['port_password'][a_server_port] = config['password'] 
     else: 
      config['port_password'][str(server_port)] = config['password'] 

Antwort

2

Weil "server_port" der Schlüssel für eine Liste ist, die im dict gespeichert ist.

Die Option "None" gibt nur einen Standardwert für ein nicht vorhandenes Schlüssel/Wert-Paar an.

1

Wenn Sie ein Wörterbuch haben

thing = { 
    "name": "Bob, 
    "height": 19, 
} 

Sie den Wert eines Schlüssels anfordern können mit thing.get()

>>> thing.get("name") 
Bob 

dict.get() hat ein optionaler Parameter default=None, die in dem Fall zurückgeführt wird, dass der Schlüssel nicht innerhalb der Wörterbücher gefunden.

>>> thing.get("someUnknownKey") 
None 

aber

>>> thing.get("someUnknownKey", default="If key is not found, print this") 
If key is not found, print this 

so ist ein möglicher Schlüssel in einem Wörterbuch, wenn es nicht gefunden, None zurückgegeben. Wenn es gefunden wird, wird die value des Schlüssels zurückgegeben - was voraussichtlich eine list sein wird.

Verwandte Themen