问题标签 [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 结构模式匹配
我无法运行此代码:
match
我在 Python 中找不到关键字。
我在这里找到它:https ://www.python.org/dev/peps/pep-0622/#the-match-statement
任何想法?
python - 如何使用存储在变量中的值作为案例模式?
我试图理解 Python 3.10 中新的结构模式匹配语法。我知道可以匹配这样的文字值:
但是,如果我重构并将这些值移动到模块级变量,则会导致错误,因为这些语句现在表示结构或模式而不是值:
有没有办法使用 match 语句来匹配存储在变量中的值?
python - 如何在 Python 案例中引用变量
Python 能够将值与文字集或占位符进行匹配,如下所示:
但是,如果我们有一个名为的变量another_fruit
,并且我们希望与该变量的值完全匹配,而不是分配一个具有相同名称的占位符,该怎么办?有什么特殊的语法吗?
python-3.x - 带有常量的 Python 3.10 匹配/大小写
match/case
我试图用Python 3.10中的较短的代码块替换 if/elif/elif/.../else 代码块。我定义了三个常量,并希望为每个常量做一些不同的事情,所以我的代码大致如下所示:
但是,在运行这段代码时,会出现异常:
我究竟做错了什么?
python - 将多个 isinstance 检查转换为结构模式匹配
我想将此现有代码转换为使用模式匹配:
您如何编写带有模式匹配的isinstance检查,以及如何同时针对多种可能的类型进行测试(float, Decimal)
?
python - 捕获使剩余模式无法访问
为什么此代码失败:
它生成此错误消息:
该错误消息是什么意思,如何修复代码以使其正常工作?
python - 避免结构模式匹配中的意外捕获
在使用模式匹配时,这个例子被讨论为可能的“陷阱”:
这是使用结构模式匹配意外捕获的示例。它给出了这个意外的输出:
同样的问题以其他形式出现:
在这个例子中,str
需要有括号,str()
. 没有它们,它会“捕获”并将str内置类型替换为x的值。
是否有一种防御性编程实践可以帮助避免这些问题并提供早期检测?
python - 在 Python 3.10 中继承联合类型
假设我们创建了一个在Python 3.10中调用的通用Union类型ResultData
请注意,在这种情况下,我使用的是新的 Python 3.10 Union 语法
然后当试图继承类以添加一些方法(比如来自 Monad 的方法)时,问题就来了:
通过声明这个类,它会抛出以下错误:
似乎 Union 类型继承自以下两个类:_SpecialForm
和_GenericAlias
.
_GenericAlias
有 4 个参数作为构造函数,而_SpecialForm
只有两个。我的猜测是_SpecialForm
构造函数是使用_GenericAlias
构造函数调用的,因此会导致错误。
我尝试使用以下代码解决此问题:
但是我仍然遇到同样的错误。