问题标签 [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.
python - Python PEG 中 bitwise_or 的目的是什么?
PEG语法中的含义是什么bitwise_or
?更准确地说,在很多bitwise_or
情况下它甚至都没有解析 | 但还是有的。是否bitwise_or
在 PEG 中用于任何其他目的,而不是作为 | 在 Python 中?
从 Python PEG 中提取的示例:-
注意bitwise_or
这里的词。问题不在于 PEG 中的竖线。
python - 有没有办法使用 python 的“匹配”语句来测试 Iterable 是否包含模式?
这与新的 Python 3.10 beta 和新match
语法有关。有没有办法检查一个模式是否简单地包含在一个迭代中?最明显的解决方案是简单地将两个通配符放在两边,但这会引发 aSyntaxError
由于来自可迭代解包的解包语法。
有没有办法做到这一点?注意:在示例中使用诸如包装类之类的东西numbers
会很好,只要它使用匹配块并且至少具有一定的可读性,但我已经尝试过这个并且没有太大的成功
例子:
python - 如何键入一个以可调用对象及其参数作为参数的函数 - 例如函数的数值积分?
问题
我有以下功能(基于scipy.integrate.quad
):
...它基本上评估func
一系列值并使用固定宽度的条带来计算图形下的面积。可选地,可以通过func
元组传递参数args
。
如您所见,我已经完成了一些初始类型提示(实际上这是 scipy 的 .pyi 存根),但是我对 func 和 args 的类型如此松散感到不满意。我希望 mypy 保护我免受两件事的影响:
func
是一个可调用的,它必须有一个第一个位置参数,它是 afloat
,并返回 afloat
,并且可以有可选的*args
- 即
f(x:float, ...) -> float
至少 - 我猜它也可以有 **kwargs (虽然不能有必需的名称参数或除了 x 以外的必需的位置参数)
- 即
- 可选的位置
*args
必须匹配func
splatted args 元组的内容
例子
我试过的
因为func
我试图用协议和泛型做一些事情:
...希望我能写
...我知道这有很多问题,如果例如我想将 lambda 作为 func 传递,Protocol 也不能很好地与 Callable 配合使用。
我将这个 python 3.10 标记为我认为新的参数规范变量可能会有所帮助,但我只看到了装饰器中使用的那些,所以我不确定如何在这里应用它们。让我知道你的想法
python - 带括号的上下文管理器
我试图了解Python 3.10 中新的带括号的上下文管理器功能的新功能(此处的新功能中的顶级项目)。
我的测试示例是尝试编写:
一个超级简单的测试,它在 Python 3.10 中完美运行。
我的问题是它在 Python 3.9.4 中也能完美运行?
在 Python 3.8.5 中对此进行测试,看起来它不起作用,提高了预期的SyntaxError
.
我是否误解了此更新,因为似乎这种新语法是在 3.9 中引入的?
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 ?
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,包括根据环境变量修改函数体:
我非常喜欢这种解决方法,因为特别是,它允许人们在记录时呈现不同的输出。(例如,我的类具有基于类名的路径属性。如果不同的用户执行相同的脚本,则路径将不同,因为它们的主文件夹不同。)
但是有两个问题:
- 这种方法取决于在 python 之外做的事情,imo,在理想的世界中,没有必要在 python 本身之外做
- 为了在文档中获取文档字符串,似乎我们最终不得不做一些不直观的事情,比如
PS:顺便问一下, a@classmethod@property
和 an之间有什么功能上的区别attribute
吗?它们看起来非常相似。目前我能做出的唯一区别是,如果该属性需要访问其他@classmethod
s,我们需要像上面一样移动元类中的所有内容。
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 中删除之前做了什么或做了什么。
python - 如何检查变量是否适合自定义类型
我有这个代码:
我想在运行时检查我的变量是否符合我的自定义类型定义。我在想类似的东西:
但显然isinstance
是行不通的。我需要在运行时检查它,实现它的正确方法是什么?
python - 为什么 Python 3.10 中的关键字 `match` 可以作为变量或函数名?
我不完全明白为什么关键字match
可以用作变量或函数名,不像其他关键字if
,while
等?
python-3.10 - 如何在匹配案例python 3.10中做一个else
Python最近在python 3.10版本中发布了match case。问题是我们如何在python中为case做一个默认值。我可以做if elif但不知道怎么做。下面是代码。
我自己添加了这个默认值。我想知道在 python 中执行此操作的方法