Предположим, что some.module.MyClass является классом Java, если он импортирован в Jython 2.1, его полное имя класса можно получить так:
from some.module import MyClass
print MyClass.__name__
затем был напечатан файл some.module.MyClass.
Теперь тот же код в Jython 2.5 печатает только «MyClass».
Чтобы получить полное имя в Jython 2.5, я нашел следующее:
print MyClass.name
Он печатает «some.module.MyClass» (я думаю, java.lang.Class.getName () вызывается).
Проблема в том, что в MyClass есть метод getName. Тогда вышеупомянутое не удается.
Я нашел решение позвонить
print MyClass.__module__ + "." + MyClass.__name__
но это намного более многословно.
Если кто-нибудь знает более простой способ (например, оригинальное __name__), это будет приветствоваться.
Примечание: Я уже знаю полное имя класса (фактически я его импортировал). Я хочу, чтобы таким образом обнаруживались изменения в случае, если класс был переименован или перемещен. Например:
className = "some.module.MyClass" # needs to be changed manually if MyClass is moved
против
className = MyClass.name # no need to be changed if MyClass is moved