Skip to content

Instantly share code, notes, and snippets.

@VerosK
Last active April 24, 2019 13:07
Show Gist options
  • Save VerosK/44a5150d05187a51a572882ec84ee808 to your computer and use it in GitHub Desktop.
Save VerosK/44a5150d05187a51a572882ec84ee808 to your computer and use it in GitHub Desktop.
Python keyword arguments

Pokud je connection_string dictionary, tedy:

dsn=dict(host="server.xxl.cz", port=5432, user_name="yser", password="secret")

a chci zavolat pomocí pojmenovaných parametrů (což je dobrým zvykem).

connect_to_db(host=dsn['host'], port=dsn['port'], user_name=dsn['user_name'], password=dsn['password'])

Tak je možné udělat něco jako

connect_to_db(**connection_string)

Pokud bych chtěl volat pomocí pozičních (nepojmenovaných) parametrů, tedy takhle:

connect_to_db(dsn['host'], dsn['port'])

tak můžu udělat

params = [ dsn[i] for i in ['host','port'] ]
connect_to_db(*params)

případně zkráceně (ale je to méně čitelné)

connect_to_db(*[ dsn[i] for i in ['host','port'] ])

Odkazy: kwargs a unpacking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment