Попробуйте использовать .live()
вместо .bind()
; .live()
свяжет .hover
с вашим флажком после выполнения запроса Ajax.
Вы получите строковое значение, если вы call
напечатаете метод:
print(mac_list[i].__str__(), sep='\n')
Взгляните на документы для str()
. Соответствующая часть:
blockquote>
str(object)
возвращаетobject.__str__()
, которое является «неформальным» или хорошо печатаемым строковым представлением объекта. Для строковых объектов это сама строка. Если объект не имеет метода__str__()
, тоstr()
возвращается к возвращениюrepr(object)
.Аналогично,
repr()
вызывает__repr__()
.Из документов по
print()
:Все аргументы без ключевых слов преобразуются в строки, как это делает
. ] blockquote>str()
, и записываются в потокТаким образом,
print(obj)
ведет себя какstr(obj)
, за исключением того, что он записывает в поток, а не возвращает значение. Это означает, что ваше решение оказывается проще, чем вы думали:# you can iterate over the list directly for mac_auth in mac_list: # sep='\n' is the default value, so you don't need to specify it print(mac_auth)
В качестве примечания, причина, по которой вы сейчас видите это:
<bound method MacAuth.__str__ of XXXXXXXXXXXX>
потому что метод
MacAuth.__str__
также является объектом, с определенным собственным представлением строки, аПредставления связанных методов включают ссылку на объект, с которым они связаны, в данном случае объект
MacAuth
. Поток будет похож на это:
print()
пытается преобразовать метод__str__
(который сам по себе является объектом), связанный с объектомMacAuth
, в строку [1127 ]- Строковое представление
__str__
включает в себя объект, с которым он связан, что-то вроде<bound method MacAuth.__str__ of [MacAuth obj]>
- Чтобы напечатать часть
[MacAuth obj]
, вызывается__str__
этого объекта, который возвращаетmac_address
] атрибут по желанию