Имам 2 метода, които наричам един цикъл един след друг
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 () im получава грешка в атрибута, че това количество не е намерено и програмата се движи напред до B (), вместо да завърши изпълнението на A ()
как да се уверя, че B () се изпълнява само след като A () завърши без да се обади B () от A ()
Тук предоставям пълния код за двата метода тук:
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 за отговор № 1Не сте сигурни какво прави вашият код. Но проблемът е с метода getYesterdayPosition
Вътре getYesterdayPosition имате толкова много, ако условията. Всеки от тях се проваля и не се обявява самостоятелно.
по-добре да приложите друго условие и да зададете някаква стойност за фалшиви случаи.