отображать атрибуты объекта в python

Я хотел бы отображать атрибуты объекта-объекта и задавался вопросом, была ли для него функция python. Например, если у меня был объект из следующего класса:

class Antibody(): def __init__(self,toSend): self.raw = toSend self.pdbcode = '' self.year = '' 

Могу ли я получить результат, который выглядит примерно так или что-то подобное:

 ['self.raw','self.pdbcode','self.year'] 

благодаря

4 Solutions collect form web for “отображать атрибуты объекта в python”

Следующий метод печатает ['self.pdbcode', 'self.raw', 'self.year'] для экземпляра вашего класса:

 class Antibody(): ... def get_fields(self): ret = [] for nm in dir(self): if not nm.startswith('__') and not callable(getattr(self, nm)): ret.append('self.' + nm) return ret a = Antibody(0) print a.get_fields() 

Попробуйте dir(self) . Он будет включать все атрибуты, а не только «данные».

Как это

 class Antibody: def __init__(self,toSend): self.raw = toSend self.pdbcode = '' self.year = '' def attributes( self ): return [ 'self.'+name for name in self.__dict__ ] 

a = Antibody(0)

map(lambda attr: 'self.%s'%(attr), filter(lambda attr: not callable(getattr(a, attr)), a.__dict__))

  • Должен ли я использовать класс? (Python)
  • Вызов нестатического метода из статического в Python
  • Можно ли утверждать, что функции вызываются и используются методы?
  • Как Python обрабатывает классы, находящиеся в отдельных файлах или все они должны находиться в одном файле
  • Невозможно создать экземпляр класса, определенного в подкаталоге
  • Как эффективно разработать класс, содержащий связанные переменные-члены?
  • Python: добавить родительский класс в класс после начальной оценки
  • Преимущество использования пользовательской функции инициализации вместо `__init__` в python
  • Python - лучший язык программирования в мире.