我想在 Python 3 中键入类方法的输入。我希望参数是list我创建的自定义类的 a。该方法的定义如下:
def add_report_data(self, report_data: list[ReportData]):
pass
Run Code Online (Sandbox Code Playgroud)
ReportData 是一个普通的类,定义如下:
class ReportData:
def __init__(self, system: str, value: int):
self.__system = system
self.__value = value
Run Code Online (Sandbox Code Playgroud)
执行我的代码时,我收到以下错误:
def add_report_data(self, report_data: list[ReportData]):
TypeError: 'type' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
但是,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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1484 次 |
| 最近记录: |