有没有更Python的方式来做到这一点?
if authenticate: connect(username="foo") else: connect(username="foo", password="bar", otherarg="zed")
connect_kwargs = dict(username="foo")
if authenticate: connect_kwargs[‘password’] = “bar” connect_kwargs[‘otherarg’] = “zed” connect(**connect_kwargs)
当您可以将一组复杂的选项传递给函数时,这有时会很有帮助。在这种简单的情况下,我认为您有更好的选择,但是可以将其视为 更pythonic, 因为它不会username="foo"像OP那样重复两次。
username="foo"
if
password = "bar" if authenticate else None
otherarg = “zed” if authenticate else None connect(username=”foo”, password=password, otherarg=otherarg)