как получить доступ к атрибуту объекта, имеющего имя с пробелом - PullRequest
0 голосов
/ 11 июля 2019

Я использовал метод setattr для установки имен столбцов из файла Excel в качестве атрибута объекта. Тем не менее, эти имена включают пробелы, такие как «Имя поставщика». Как я могу получить доступ к атрибуту, как это?

for k in self.df.columns.values.tolist():
         setattr(self,k,self.df[k])

1 Ответ

0 голосов
/ 11 июля 2019

С getattr, конечно:

>>> class MyClass: pass
...
>>> my_object = MyClass()
>>> setattr(my_object, 'spaces are considered harmful', 42)
>>> getattr(my_object, 'spaces are considered harmful')
42

Или вы всегда можете получить доступ к пространству имен пользовательского класса (где вы не определили __slots__), используя пространство имен напрямую:

>>> vars(my_object) is my_object.__dict__
True
>>> vars(my_object)
{'spaces are considered harmful': 42}
>>> my_object.__dict__
{'spaces are considered harmful': 42}
>>> vars(my_object)['spaces are considered harmful']
42
>>> my_object.__dict__['spaces are considered harmful']
42

Хотя на самом деле вместо пользовательского класса звучит так, будто вы хотите какой-то контейнер, который является своего рода отображением из строк в другие объекты.

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