Если бы у меня было:
class A(object):
varA = 1
inst = A()
Тогда как мне получить ключи всех переменных в inst? Я бы хотел что-то вроде ["varA"]
Пока я получил это:
vars(inst.__class__).keys() #returns ['__dict__', '__weakref__', '__module__', 'varA', '__doc__']
Я в порядке, я бы просто проигнорировал двойные переменные. Моя проблема с несколькими уровнями наследования, как:
class A(object):
varA = 1
class B(A):
varB = 2
inst = B()
vars(inst.__class__).keys() #returns ['__module__', '__doc__', 'varB']
но я хочу получить как varB, так и varA. Есть идеи, как мне поступить?
Я тоже пробовал:
vars(super(B, inst).__class__).keys()+vars(inst.__class__).keys()
Но это не помогло, как я ожидал.
Если это имеет значение, я использую Python 2.6.
Редактировать: Я просто наткнулся на очень простой способ сделать это:
dir(inst)