извлечение ключей всех переменных объекта - PullRequest
0 голосов
/ 20 февраля 2010

Если бы у меня было:

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)

1 Ответ

1 голос
/ 20 февраля 2010

Существует модуль python, называемый inspect для самоанализа во время выполнения. Может быть inspect.getmembers может помочь вам ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...