__ getattr __ ()
getattr
действительно хороший способ сделать универсальные классы, который особенно полезен, если Вы пишете API. Например, в FogBugz Python API, getattr
используется для передачи вызовов метода на веб-сервис беспрепятственно:
class FogBugz:
...
def __getattr__(self, name):
# Let's leave the private stuff to Python
if name.startswith("__"):
raise AttributeError("No such attribute '%s'" % name)
if not self.__handlerCache.has_key(name):
def handler(**kwargs):
return self.__makerequest(name, **kwargs)
self.__handlerCache[name] = handler
return self.__handlerCache[name]
...
, Когда кто-то звонит FogBugz.search(q='bug')
, они не добираются, на самом деле звонят search
метод. Вместо этого getattr
дескрипторы вызов путем создания новой функции, которая переносится makerequest
метод, который создает соответствующий Запрос HTTP к веб-API. Любые ошибки будут диспетчеризироваться веб-сервисом и пасоваться назад пользователю.
Ага - у меня именно эта проблема работает и для нескольких классов.
Настройки -> Java -> Внешний вид -> Фильтры типов.
Измените расположение зависимостей в пути к библиотеке в соответствии с порядком, в котором вы хотите, чтобы они были.
Это должно отдавать приоритет зависимостям, которые вы предпочитаете. (Хотя, если подумать, я не уверен, что это отражено в полях автозаполнения.)