所以基本上已经导入了一个类,并且从它调用了一个函数。被调用的函数应该返回一个浮点数,但是当我对它执行加法时,它表示不能添加类型float和NoneType。
然而,我可以将返回的值转换为字符串并打印它,因此它不能为空。我虽然NoneType为null或没有返回值。
调用功能
def showPositions(self):
runningprofit = float(0)
for trade in self.trades:
#self.output.log("what does this show?" + str(trade.showTrade()))
runningprofit += trade.showTrade()
被叫功能
def showTrade(self):
tradeStatus = "Entry Price: "+str(self.entryPrice)+"\tStatus: "+str(self.status)+"\tExit Price: "+str(self.exitPrice)
if (self.status == "CLOSED"):
tradeStatus = tradeStatus + "\tProfit: "
if (self.exitPrice > self.entryPrice):
tradeStatus = tradeStatus + "\033[92m"
else:
tradeStatus = tradeStatus + "\033[91m"
tradeStatus = tradeStatus+str(self.exitPrice - self.entryPrice)+"\033[0m"
self.output.log(tradeStatus)
return(float(self.exitPrice - self.entryPrice))
返回的错误是:
runningprofit += trade.showTrade()
TypeError: unsupported operand type(s) for +=: 'float' and 'NoneType'
答案 0 :(得分:0)
这是因为以下条件是False
:
if (self.status == "CLOSED"):
然后,没有分支返回正确的值,因此返回None
。
None
无法添加到Float
,因此您收到错误。
您的选项要么处理CLOSED
中的所有非showTrade()
状态,要么处理None
中的showPositions()
。