use*_*087 3 python python-asyncio interactive-brokers
在扫描仪数据(流)中我可以找到以下语句(您可以在下面找到完整代码):
scanData.updateEvent += onScanData
是什么+=意思?
所以,我知道这是在触发onScanData()时应该调用的事件处理函数。scanData.updateEvent
但为什么我有一个+=here而不是一个simple =?什么得到了增量以及稍后我可以在哪里找到增量变量?
备注:为了运行下面的代码片段,Interactive-Brokers软件TWS已经运行。
import datetime
from ib_insync import *
ib = IB()
ib.connect('127.0.0.1', 7497, clientId=1)
def onScanData(scanData):
print(scanData[0])
print(len(scanData))
sub = ScannerSubscription(
instrument='FUT.US',
locationCode='FUT.GLOBEX',
scanCode='TOP_PERC_GAIN')
scanData = ib.reqScannerSubscription(sub)
scanData.updateEvent += onScanData
ib.sleep(60)
ib.cancelScannerSubscription(scanData)
Run Code Online (Sandbox Code Playgroud)
reqScannerSubscription返回 的一个实例ScanDataList。它的updateEvent属性是 的一个实例eventkit.Event。它将其方法重载__iadd__为 的别名connect,该别名将侦听器连接到该事件。