/ / състояние на расата при Python методи - python

състояние на расата при методите на Python - python

Имам 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 имате толкова много, ако условията. Всеки от тях се проваля и не се обявява самостоятелно.

по-добре да приложите друго условие и да зададете някаква стойност за фалшиви случаи.