gpt4 book ai didi

Python:如何检查是否可以使用可选参数?

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

使用 urllib2,最新版本允许在调用 urlopen 时使用可选参数“context”。

我整理了一些代码来利用它:

# For Python 3.0 and later
from urllib.request import urlopen, HTTPError, URLError
except ImportError:
# Fall back to Python 2's urllib2
from urllib2 import urlopen, HTTPError, URLError
import ssl

context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
response = urlopen(url=url, context=context)

用我的 python 2.78 运行它...我得到:

Traceback (most recent call last):
File "test.py", line 5, in <module>
context = ssl.create_default_context()
AttributeError: 'module' object has no attribute 'create_default_context'

所以我想:那么让我们选择 python3;现在我得到:

Traceback (most recent call last):
File "test.py", line 15, in <module>
response = urlopen(url=url, context=context)
TypeError: urlopen() got an unexpected keyword argument 'context'

我花了一段时间才发现使用那个命名参数上下文......还需要比我的 ubuntu 14.04 上安装的 3.4.0 更新的 python 版本。

我的问题:检查调用 urlopen 时是否可以使用“上下文”的“规范”方法是什么?只是调用它并期待 TypeError?或者对我运行的 python 进行精确的版本检查?

我确实在这里和谷歌搜索过,但也许我只是错过了正确的搜索词……因为我找不到任何有用的东西……

最佳答案

这里描述了如何检查函数的签名:How can I read a function's signature including default argument values?

但是,某些函数具有通用签名,例如:

def myfunc(**kwargs):
print kwargs.items()

if kwargs.has_key('foo'):
...

if kwargs.has_key('bar'):
...

在调用它们之前不可能知道它们使用了哪些参数。例如 matplotlib/pylab 有很多使用 kwargs 的函数。

关于Python:如何检查是否可以使用可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367561/

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