Мой код следующий:
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
class TestApp(EWrapper,EClient):
def __init__(self):
EClient.__init__(self, self)
def contractDetails(self , contractDetails):
print(contractDetails.__dict__)
# Start
app = TestApp()
contract = ....
app.reqContractDetails(1,contract)
Метод reqContractDetails
- это метод из класса EWrapper
. Ему нужен метод contractDetails
, созданный в моем коде, и возврат print(contractDetails.__dict__)
Вместо printing
Я хотел бы иметь возможность получить результат в переменной. Я изменяю с return(contractDetails.__dict__)
Моя проблема в том, что возврат всегда None
из этого метода, я могу напечатать, но не поймать результат, почему?
В моем EClient
классе метод выглядит следующим образом:
def reqContractDetails(self, reqId:int , contract:Contract):
"""Call this function to download all details for a particular
underlying. The contract details will be received via the contractDetails()
function on the EWrapper.
reqId:int - The ID of the data request. Ensures that responses are
make_fieldatched to requests if several requests are in process.
contract:Contract - The summary description of the contract being looked
up."""
self.logRequest(current_fn_name(), vars())
...
msg = "".join(flds)
self.sendMsg(msg)
А в моем Eclient
классе метод выглядит следующим образом
def contractDetails(self, reqId:int, contractDetails:ContractDetails):
"""Receives the full contract's definitions. This method will return all
contracts matching the requested via EEClientSocket::reqContractDetails.
For example, one can obtain the whole option chain with it."""
self.logAnswer(current_fn_name(), vars())
Есть ли что-то я скучаю, как работают class
в python?