相关疑难解决方法(0)

Python 3注释:键入提示指定类型的列表(PyCharm)

使用Python 3的函数注释,可以指定同类列表(或其他集合)中包含的项目类型,以便在PyCharm和其他IDE中进行类型提示?

int列表的伪python代码示例:

def my_func(l:list<int>):
    pass
Run Code Online (Sandbox Code Playgroud)



我知道可以使用Docstring ...

def my_func(l):
    """
    :type l: list[int]
    """
    pass
Run Code Online (Sandbox Code Playgroud)

...但如果有可能,我更喜欢注释样式.

python type-hinting pycharm python-3.x

93
推荐指数
4
解决办法
3万
查看次数

空列表的正确类型提示是什么?

什么是正确的类型提示x = []

我的 PyCharm 编辑器中的类型检查器将此标记为错误:

labelframes: List[ttk.LabelFrame] = []
Run Code Online (Sandbox Code Playgroud)

'Optional' 不是一个选项,如:

labelframes: List[Optional[ttk.LabelFrame]] = []
Run Code Online (Sandbox Code Playgroud)

因为文档typing.Optional说明这相当于:

labelframes: List[Union[ttk.LabelFrame, None]] = []
Run Code Online (Sandbox Code Playgroud)

并且[None]不是[]

我应该提到 PyCharm 也不喜欢这样:

labelframes: List[Union[ttk.LabelFrame, None]] = [None]
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么类型的提示。PyCharm 将其标记为错误,“预期在此处返回我的类型提示,但没有返回”,因此我尝试了:

labelframes: Optional[List[ttk.LabelFrame, None]] = []
Run Code Online (Sandbox Code Playgroud)

那没有用。

我知道 PEP 526 有许多遵循以下模式的示例:

x: List[str] = []
Run Code Online (Sandbox Code Playgroud)

python typing type-hinting python-3.x

12
推荐指数
2
解决办法
7592
查看次数

标签 统计

python ×2

python-3.x ×2

type-hinting ×2

pycharm ×1

typing ×1