python - 在 Python 3.6 中声明一个自定义类列表作为函数的参数
问题描述
我想在 Python 3 中键入类方法的输入。我希望参数是list
我创建的自定义类的 a。该方法的定义如下:
def add_report_data(self, report_data: list[ReportData]):
pass
ReportData
是一个常规类,定义如下:
class ReportData:
def __init__(self, system: str, value: int):
self.__system = system
self.__value = value
执行我的代码时,我收到以下错误:
def add_report_data(self, report_data: list[ReportData]):
TypeError: 'type' object is not subscriptable
但是,将类型更改report_data
为简单list
可以执行,但这并不是我想要做的。知道发生了什么吗?谢谢。
解决方案
你想导入typing.List并执行List[ReportData]
List[ReportData]
指list
用于输入的通用版本,而不是list[ReportData]
指数据类型列表
#Importing List from typing
from typing import List
class ReportData:
def __init__(self, system: str, value: int):
self.__system = system
self.__value = value
class A:
#Using List[ReportData]
def add_report_data(self, report_data: List[ReportData]):
pass
推荐阅读
- java - 如何加载方法参数中给定名称的枚举?
- php - 使用长内容调用 PHP $argv[1] 时为空
- php - 如何使用 html2pdf 将 PDF 格式从 A4 更改为 Us Letter?
- javascript - Nightwatch:等待来自 gmail 的新邮件
- python - 格式化不同十进制值的整数Python
- marquee - 如何连续滚动图像而没有间隙?
- typescript - 在 VSCode 中,如何通过 IntelliSense 导入 React?
- wpf - 如何将 RestClient 与 Oauth 2.0 和 Client + TLS 证书一起使用?
- python - Sonarqube 客户端无法解析 pytest 覆盖结果
- node.js - 我想在 lambda 函数中异步调用外部 API(天气 API)