Обратите внимание, что лучшая практика в Python 2.7 должна использовать новый стиль классы (не нужный с Python 3), т.е.
class Foo(object):
...
кроме того, существует различие между 'объектом' и 'классом'. Для создавания словаря от произвольного объект достаточно использовать __dict__
. Обычно, Вы объявите свои методы на уровне класса и свои атрибуты на уровне экземпляра, таким образом __dict__
должен будет быть прекрасным. Например:
>>> class A(object):
... def __init__(self):
... self.b = 1
... self.c = 2
... def do_nothing(self):
... pass
...
>>> a = A()
>>> a.__dict__
{'c': 2, 'b': 1}
А лучше приближаются (предложенный [1 111] robert в комментариях), встроенное vars
функция:
>>> vars(a)
{'c': 2, 'b': 1}
, С другой стороны, в зависимости от того, что Вы хотите сделать, могло бы быть хорошо наследоваться от dict
. Тогда Ваш класс уже словарь, и если Вы хотите Вас, может переопределить getattr
и/или setattr
, чтобы звонить через и установить dict. Например:
class Foo(dict):
def __init__(self):
pass
def __getattr__(self, attr):
return self[attr]
# etc...
Получен ответ на другом ресурсе. Проблема заключается в следующем: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters «С подстановочным знаком. и нечеткий поиск, анализ текста по поисковому слову не выполняется ».
Надеюсь, это кому-то поможет.
Пробовали ли вы использовать EdgeNGrams? См. мой ответ на вопрос 2413946.