【发布时间】:2018-01-14 09:53:20
【问题描述】:
我有 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() 中,我得到一个属性错误,即未找到数量,并且程序正在向 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() 中,它说找不到昨天的位置
main.py 这就是他们的称呼
for value in orderList:
value.getYesterdayPosition(jsonPositions['net'],csvInstruments)
value.getPositionDiff()
【问题讨论】:
-
???
def A()=>def A(self)。您的代码不正确,并且任何地方都没有任何比赛......请minimal reproducible example。 -
虽然不应该我不知道为什么,但它却在不断前进
-
不可能真的发生,一定是另一个问题。你绝对需要提供一个完整的例子。
-
是整个 object.py 模块吗?如果是,那么您需要将这些函数嵌入到一个类中,并确保 valueList 的元素是该类的实例
-
它们在一个类中,而 valueList 中的对象是该类的实例
标签: python