python - 如何为具有相同父元素的两个 python 列表的连接编写正确的类型
问题描述
我有 pydantic 模型,它们共享相同的基类
class Base(BaseModel):
shared_arg: str
class A(Base):
some_arg1: int
class B(Base):
some_arg2: str
我有一个函数,它接受list[Base]
作为参数。我想组合在一起list[A]
,list[B]
以便在这个函数中传递它并对它们的shared_arg
值进行操作。
假设,函数是
def work_on_bases(values: list[Base]) -> list[str]:
return [v.shared_arg.upper() for v in values]
列表如下所示:
list_a = [A(shared_arg='hello', some_arg1=0),
A(shared_arg='world', some_arg1=5)]
list_b = [B(shared_arg='green', some_arg2=7),
A(shared_arg='horse', some_arg2=9)]
我试着做这样的东西
combined: list[Base] = list_a + list_b
和这个
list_a_base: list[Base] = list_a
list_b_base: list[Base] = list_b
combined: list[Base] = list_a + list_b
但是pylance(pyright)仍然存在问题
Operator "+" not supported for types "list[A]" and "list[B]"
有没有办法在这里写正确的打字,或者# type: ignore
是唯一的方法?
解决方案
推荐阅读
- html - 有没有办法让 3 个 div 并排并用 Bootstrap 4 做出响应?
- node.js - npm 错误!对 http://registry.npmjs.org/express 的网络请求失败,原因:连接 ETIMEDOUT
- javascript - ArcGIS API for JavaScript:从动态填充的下拉列表中查询
- django - 如何覆盖 Django 管理员 delete_selected_confirmation.html
- java - 在这个三元语句中可能抛出 NullPointerException 的原因是什么?
- javascript - 如果示例数据结构被认为是一个链接列表,那么如何编写一个打印出其所有成员的函数?
- jpa - 批量更新后的 JPA JQL 查询看到过时的值
- android - 连接到 WPA2 Enterprise WiFi 时 Android 上的 EAP-TTLS 和 CA 证书
- r - 如何将公式应用于数据框中的每个值?
- c# - 如何在 .NET 应用程序中向 Visa Reader NFC 发送金额或十进制数字?