gpt4 book ai didi

python - 如何以正确的方式使用默认值

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:29 24 4
gpt4 key购买 nike

给定以下函数:

def httpstatus(self, url, data=None, timeout=None):
if timeout is None:
timeout = socket._GLOBAL_DEFAULT_TIMEOUT
urlopen(url, data, timeout)

超时参数应该是可选的。但如果省略,我想使用 socket._GLOBAL_DEFAULT_TIMEOUT 值,如代码所示。但是,那个是 protected 成员。这似乎不是正确的方法。如此不同的方法...

def httpstatus(self, url, data=None, timeout=None):
if timeout is None:
urlopen(url, data)
else:
urlopen(url, data, timeout)

哎呀那个更脏...

回退到套接字默认超时的正确方法是什么?

最佳答案

您可以使用 **-syntax为此:

def httpstatus(self, url, data=None, timeout=None):
kwargs = {}
if timeout is not None:
kwargs['timeout'] = timeout
urlopen(url, data, **kwargs)

甚至:

def httpstatus(self, url, data=None, **kwargs):
# Don't forget to mention in documentation that all
# extra arguments are passed to urlopen as is.
urlopen(url, data, **kwargs)

关于python - 如何以正确的方式使用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21067795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com