Python String метод Obscured - PullRequest
       8

Python String метод Obscured

1 голос
/ 20 января 2012

Я пытаюсь разбить строку, возвращенную из реализации API-интерфейса Interactive Broker на Python, но получаю:

AttributeError: 'TickPrice' object has no attribute 'split'

def my_price_handler(msg):
    fields=msg.split()
    print fields[0]

Проверено код API и (1) msg ​​является строкой и (2) «split» не переопределен в другом месте.Строка сообщения выглядит следующим образом <Tick Price tickerId=1, field=1, price=74.0, canAutoExecute=1> и может быть распечатана непосредственно на консоли.То же сообщение об ошибке при использовании синтаксиса:

def my_price_handler(msg):
    fields=string.split(msg)
    print fields[0]

Я импортировал строку вверху программы.

Это проблема с переменной областью?

Ответы [ 2 ]

4 голосов
/ 20 января 2012

Очевидно, msg - это , а не строка, когда она вводит my_price_handler; это TickPrice. Помещенный

print(type(msg))

до split звонка, чтобы убедить себя в этом факте.

(Тот факт, что msg может быть напечатан, не означает, что это строка, если вы так думали.)

1 голос
/ 20 января 2012

TickPrice представляется классом. msg - это экземпляр указанного класса, который имеет метод __repr__, который позволяет вам print передать его на консоль, выдав:

<Tick Price tickerId=1, field=1, price=74.0, canAutoExecute=1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...