我有一个接一个循环调用的方法
main.py(值是一个对象)
for value in valueList:
value.A()
value.B()
Object.py(对象定义)
def A(self):
self.quantity = 10
def B(self):
self.quantity = self.quantity + 1
在函数B()中我得到一个属性错误,找不到数量,程序正在前进到B(),而不是先完成执行A()
如何确保B()仅在A()完成后执行而不从A()调用B()
我在这里提供两种方法的完整代码:
def getYesterdayPosition(self,Pos,csvInstruments):
for data in csvInstruments:
if data['segment'] == "NFO-FUT":
if data['tradingsymbol'] == self.derivative:
for entry in Pos:
if self.derivative == entry['tradingsymbol']:
quantity = int(entry['quantity'])
self.yesterdays_position = quantity/data['lot_size']
def getPositionDiff(self):
if self.yesterdays_position == self.indices:
self.trade = 0.0
elif self.yesterdays_position > self.indices:
self.trade = -(self.yesterdays_position - self.indices)
elif self.yesterdays_position < self.indices:
self.trade = self.yesterdays_position - self.indices
错误来自getPositionDiff(),它说它无法找到yesterdays_position
main.py 这就是它们的名称
for value in orderList:
value.getYesterdayPosition(jsonPositions['net'],csvInstruments)
value.getPositionDiff()
答案 0 :(得分:0)
不确定您的代码在做什么。但问题在于getY yesterdayPosition方法
在getY yesterdayPosition内部你有很多条件。其中任何一个都失败了,并且self.yesterdays_position没有被声明。
更好地应用else条件并为False案例设置一些值。