我试图描述我的functions
和class methods
。
我的意思是,如果数据的类型与定义的类型相同,则可以强制function/methods
控制input
和output
的值。
基本定义如下所示:
def SWE4_UT1_complex(root: os.path | PurePath) -> (float | int, str | int): ...
第一个问题
我实际上试图在list中定义多个值。确切地说,我想定义kpis
变量是一个类示例的列表。
class KPI: ... <- this is my class
input_kpis = list()
for i in json_input.kpis:
input_kpis.append(KPI(some constructor parameters))
如何定义此类列表必须是以下函数的输入参数:
def set_kpis(self, kpis: list) -> None: self.kpis = kpis
第二个问题完全一样
我有这个功能(它工作正常)
def SWE1_RE1(self) -> dict:
self.update_Requirements_Released()
self.update_Requirements_Except_Obsolete()
if self.Requirements_Except_Obsolete < 0 or self.Requirements_Released < 0:
self.errors.append(f'There has been error in kpi SWE.1_RE1 for project {self.project}{f" and Release {self.release}." if self.release is not False else "."}',)
return dict({
'semi_results': {
'Requirements_Released': self.Requirements_Released,
'Requirements_Except_Obsolete': self.err_Requirements_Except_Obsolete
},
'err': 1,
'output': f'There has been error in kpi SWE.1_RE1 for project {self.project}{f" and Release {self.release}." if self.release is not False else "."}',
})
elif self.Requirements_Except_Obsolete == 0:
self.errors.append(f'There has been error in kpi SWE.1_RT1.\n'
f'There are no requirements for project {self.project}{f" and Release {self.release}." if self.release is not False else "."}',)
return dict({
'semi_results': {
'Requirements_Released': 0,
'Requirements_Except_Obsolete': 0
},
'err': 1,
'output': f'There has been error in kpi SWE.1_RE1.\n'
f'There are no requirements for project {self.project}{f" and Release {self.release}." if self.release is not False else "."}',
})
else:
return dict({
'semi_results': {
'Requirements_Released': self.Requirements_Released,
'Requirements_Except_Obsolete': self.Requirements_Except_Obsolete
},
'err': 0,
'output': round(self.Requirements_Released / self.Requirements_Except_Obsolete, 4),
})
如何做与第二个问题相同的list
充满KPI
,但dict
具有特定值。dict
看起来像这样:
dict({
str: dict({
str: float | str,
str: float | str
}),
str: int,
str: float | int | str
我试过很多种定义方式,比如list([KPI])
,list(KPI)
......都不行,也许用[KPI]
?作为定义是正确的。
对于dict
,我也尝试过多个版本,但没有工作。问题是有一次我在第一个key
中定义了两个str: float | str
,问题是多个相同的定义或类似的东西。
1条答案
按热度按时间8yparm6h1#
您是否尝试将其定义为
'list[KPI]'
,这将是KPI示例的列表。(在类型周围需要引号,因为:“下标为类“的列表”将生成运行时异常;用引号将类型注解括起来”)如果这不是你想问的,我很抱歉。