Я пытаюсь понять MRO в классах старого стиля. Было бы удобно иметь эквивалент для NewStyleClass.mro() (или NewStyleClass.__mro__).
Есть ли что-то вроде OldStyleClass.mro()? Возможно, быстрый и простой способ смоделировать это?
Я пытаюсь понять MRO в классах старого стиля. Было бы удобно иметь эквивалент для NewStyleClass.mro() (или NewStyleClass.__mro__).
Есть ли что-то вроде OldStyleClass.mro()? Возможно, быстрый и простой способ смоделировать это?
Вы можете использовать ресурсы модуля inspect
с классами старого стиля:
class A: # "old" style class
pass
class B(A):
pass
hasattr(B, '__mro__')
# -> False
import inspect
print inspect.getmro(B)
# -> (<class __main__.B at 0x7f1b5ee1b530>, <class __main__.A at 0x7f1b5ee1b4c8>)
class A: pass and class B(A):pass
или что-то гораздо более сложное. Я хочу узнать от самого Python, как работает DLR в старом стиле. Надеюсь, это то, о чем вы спрашивали. - person Yyttsa   schedule 17.07.2018