我正在try 使用Python 3.12中的新类型提示,突然PyCharm强调了有关ParamSpec的新使用的一些晦涩的问题.

import functools
from dataclasses import dataclass
from typing import Callable
from typing import Concatenate


@dataclass
class Message:
    text: str


type CheckFunc[**P] = Callable[Concatenate[Message, P], None]


def check_is_command_not_answer[**P](func: CheckFunc[P]) -> CheckFunc[P]:
    @functools.wraps(func)
    def inner(message: Message, *args: P.args, **kwargs: P.kwargs) -> None:
        if message.text:
            ...
        else:
            return func(message, *args, **kwargs)

    return inner

PyCharm的return inner个指责:

预期类型'

Here is the screenshot.

顺便说一句,我到处使用这个decorator ,而且代码工作得很完美.皮莱特也没有抱怨这里的任何问题.

我找不到问题.你能吗?

推荐答案

您的代码没有问题.问题出在PyCharm身上.

正如PY-51766中所讨论的那样,它对Concatenate等人的支持是不完整的.然而,我无法找到这个错误的现有问题.

在那里发表type: ignorenoqa comments ,然后继续前进.

Python相关问答推荐

如何让 turtle 通过点击和拖动来绘制?

有症状地 destruct 了Python中的regex?

从groupby执行计算后创建新的子框架

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

avxspan与pandas period_range

joblib:无法从父目录的另一个子文件夹加载转储模型

Pandas GroupBy可以分成两个盒子吗?

try 检索blob名称列表时出现错误填充错误""

网格基于1.Y轴与2.x轴显示在matplotlib中

python panda ExcelWriter切换动态公式到数组公式

Polars将相同的自定义函数应用于组中的多个列,

在pandas/python中计数嵌套类别

PYTHON、VLC、RTSP.屏幕截图不起作用

提高算法效率的策略?

Flask运行时无法在Python中打印到控制台

如何在Python请求中组合多个适配器?

如何在Python 3.9.6和MacOS Sonoma 14.3.1下安装Pyregion

从一个df列提取单词,分配给另一个列

如何将列表从a迭代到z-以抓取数据并将其转换为DataFrame?

高效地计算数字数组中三行上三个点之间的Angular