问题标签 [python-3.10]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
79 浏览

python - Python PEG 中 bitwise_or 的目的是什么?

PEG语法中的含义是什么bitwise_or?更准确地说,在很多bitwise_or情况下它甚至都没有解析 | 但还是有的。是否bitwise_or在 PEG 中用于任何其他目的,而不是作为 | 在 Python 中?

从 Python PEG 中提取的示例:-

注意bitwise_or这里的词。问题不在于 PEG 中的竖线。

0 投票
1 回答
269 浏览

python - 有没有办法使用 python 的“匹配”语句来测试 Iterable 是否包含模式?

这与新的 Python 3.10 beta 和新match语法有关。有没有办法检查一个模式是否简单地包含在一个迭代中?最明显的解决方案是简单地将两个通配符放在两边,但这会引发 aSyntaxError由于来自可迭代解包的解包语法。

有没有办法做到这一点?注意:在示例中使用诸如包装类之类的东西numbers 会很好,只要它使用匹配块并且至少具有一定的可读性,但我已经尝试过这个并且没有太大的成功

例子:

0 投票
1 回答
94 浏览

python - 如何键入一个以可调用对象及其参数作为参数的函数 - 例如函数的数值积分?

问题

我有以下功能(基于scipy.integrate.quad):

...它基本上评估func一系列值并使用固定宽度的条带来计算图形下的面积。可选地,可以通过func元组传递参数args

如您所见,我已经完成了一些初始类型提示(实际上这是 scipy 的 .pyi 存根),但是我对 func 和 args 的类型如此松散感到不满意。我希望 mypy 保护我免受两件事的影响:

  1. func是一个可调用的,它必须有一个第一个位置参数,它是 a float,并返回 a float,并且可以有可选的*args
    • f(x:float, ...) -> float至少
    • 我猜它也可以有 **kwargs (虽然不能有必需的名称参数或除了 x 以外的必需的位置参数)
  2. 可选的位置*args必须匹配func splatted args 元组的内容

例子


我试过的

因为func我试图用协议和泛型做一些事情:

...希望我能写

...我知道这有很多问题,如果例如我想将 lambda 作为 func 传递,Protocol 也不能很好地与 Callable 配合使用。

我将这个 python 3.10 标记为我认为新的参数规范变量可能会有所帮助,但我只看到了装饰器中使用的那些,所以我不确定如何在这里应用它们。让我知道你的想法

0 投票
1 回答
440 浏览

python - 带括号的上下文管理器

我试图了解Python 3.10 中新的带括号的上下文管理器功能的新功能(此处的新功能中的顶级项目)。

我的测试示例是尝试编写:

一个超级简单的测试,它在 Python 3.10 中完美运行。

我的问题是它在 Python 3.9.4 中也能完美运行?

在 Python 3.8.5 中对此进行测试,看起来它不起作用,提高了预期的SyntaxError.

我是否误解了此更新,因为似乎这种新语法是在 3.9 中引入的?

0 投票
3 回答
4134 浏览

pygame - Python 3.10 不支持 pygame 吗?

我刚刚安装了 beta 版本Python 3.10,打开了 VS Code,将 Python 解释器更改为 Python 3.10 64 位(我的 PC 使用 64 位)并设法继续我的 Pygame 项目。

然而,当我运行代码时,我遇到了ModuleNotFoundError这样的说法:没有名为 Pygame 的模块。(虽然 pygame 模块已完美安装)

那是因为 Python 的 beta 版本吗?如果是,是否有一些方法可以同时使用 pygame 和 python3.10 ?

0 投票
0 回答
128 浏览

docstring - 如何在 Python 3.9 / 3.10 中记录类方法属性?

python 3.9 的一个小插件是

在 3.9 版更改:类方法现在可以包装其他描述符,例如 property()。

这在几种情况下很有用,例如作为在类方法上使用 property()的解决方案,或者为了通过配方创建本质上是一个懒惰评估的类属性

这在python中运行良好,导入类,实例化它或它的子类不会导致expensive_computation发生,但是似乎两者pydoc并且sphinx不仅会expensive_computation在他们尝试获取文档字符串时导致执行,而且不会为此显示任何文档字符串@classmethod任何。

问题:是否有可能 - 从 python (*) 中 - 懒惰地评估在构建文档时未执行的类属性/属性?

(*)停止 Sphinx 执行缓存的类方法属性中提出的一种解决方法,感谢 /u/jsbueno,包括根据环境变量修改函数体:

我非常喜欢这种解决方法,因为特别是,它允许人们在记录时呈现不同的输出。(例如,我的类具有基于类名的路径属性。如果不同的用户执行相同的脚本,则路径将不同,因为它们的主文件夹不同。)

但是有两个问题:

  1. 这种方法取决于在 python 之外做的事情,imo,在理想的世界中,没有必要在 python 本身之外做
  2. 为了在文档中获取文档字符串,似乎我们最终不得不做一些不直观的事情,比如

在此处输入图像描述

PS:顺便问一下, a@classmethod@property和 an之间有什么功能上的区别attribute吗?它们看起来非常相似。目前我能做出的唯一区别是,如果该属性需要访问其他@classmethods,我们需要像上面一样移动元类中的所有内容。

0 投票
2 回答
12651 浏览

python - 带有 Python 的 PyInstaller:3.10.0b4 - ImportError:没有名为 _bootlocale 的模块

我安装了 Python 10 的 Beta 4(我必须使用它,因为我需要仅在 v3.10 中可用的模式匹配功能):

我确保我的 pyinstaller 是最新的:

我在尝试将经过彻底测试的 python 代码转换为可执行文件时遇到ImportError: No module named _bootlocale错误:

我查看了这条评论 https://bugzilla.redhat.com/show_bug.cgi?id=1899950,AzyCrw4282发布了链接以回应一个非常相似的问题 PyInstaller - ImportError: No module named _bootlocale and there is a statement by Victor斯廷纳 2021-01-19 10:25:32 UTC

“哦,_bootlocale 是一个私有模块,不应直接导入。我将其删除并用 Python 3.10 中的新 _locale._get_locale_encoding() 函数替换它”

那么,如果模块被删除,为什么最新的 pyinstaller 仍然试图将其拉入?是因为我使用的是 Python 3.10b4 并且 pyinstaller 还没有更新吗?有没有办法从可执行文件构建中排除 _bootlocale 模块以便能够构建可执行文件?

我详尽地测试了我的程序,从 .py 运行时它没有问题。我不会调用任何直接引用 bootlocale 模块的东西,也不是 100% 确定它在从 3.10 中删除之前做了什么或做了什么。

0 投票
1 回答
61 浏览

python - 如何检查变量是否适合自定义类型

我有这个代码:

我想在运行时检查我的变量是否符合我的自定义类型定义。我在想类似的东西:

但显然isinstance是行不通的。我需要在运行时检查它,实现它的正确方法是什么?

0 投票
1 回答
517 浏览

python - 为什么 Python 3.10 中的关键字 `match` 可以作为变量或函数名?

我不完全明白为什么关键字match可以用作变量或函数名,不像其他关键字if,while等?

0 投票
3 回答
388 浏览

python-3.10 - 如何在匹配案例python 3.10中做一个else

Python最近在python 3.10版本中发布了match case。问题是我们如何在python中为case做一个默认值。我可以做if elif但不知道怎么做。下面是代码。

我自己添加了这个默认值。我想知道在 python 中执行此操作的方法