gpt4 book ai didi

python - 将 None 而不是 Series 传递给函数时出错

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:10 27 4
gpt4 key购买 nike

我有一个模块fi定义了以下类:

class CashFlows(Asset):

def __init__(self, amounts : pandas.Series, probabilities : pandas.Series = None):
amounts = Asset.to_cash_flows()

if probabilities is None:
probabilities = pandas.Series([1]*len(amounts), index=amounts.index)

然后我还有另一个类 Bond(fi.Asset)其中包含此方法,即CashFlows正在被调用:

def to_cash_flows(self, notional : float = 100.0) -> fi.asset.CashFlows:
#Bunch of stuff here which is not related
series = pandas.Series(list_of_data, indices_of_data)
return fi.CashFlows(series)

我收到错误 obiwan.ObiwanError:__init__(probabilities) is None but should be <class 'pandas.core.series.Series'> ,但我认为我正在解决出现此类错误的可能性 if陈述。 obiwan只是我在单元测试期间使用的 Python 类型检查包。

谢谢

最佳答案

根据obiwan PyPI page :

您可以使用集合指定替代约束类型:

def example5(x: {int,float}):
...

从表面上看,您似乎应该替换:

probabilities : pandas.Series = None

与:

probabilities : {pandas.Series, type(None)} = None

这将告诉 obiwan None 是可接受的参数值。

obiwan 实际上并没有查看函数本身,也不关心将参数与 None 进行比较的 if 语句。它只查看函数声明。

关于python - 将 None 而不是 Series 传递给函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975106/

27 4 0
文章推荐: C# 将对象转换为 List