Вызов значений кортежа с использованием строки в качестве указателя - PullRequest
0 голосов
/ 05 мая 2020
import string
count = 0 # Button press Counter
Letter = string.ascii_lowercase[count]
print(Letter) # returns string, a

class Colours:
   a = (255,0,0) #Tuple to be called

print(Colours.Letter[0:3]) #returns Attribute Error: class Colours has no attribute 'Letter' 

'' 'Как я могу использовать строку' Letter 'для вызова кортежа' a '?' ''

Ответы [ 3 ]

0 голосов
/ 05 мая 2020

Вы можете получить доступ к атрибутам по их имени (в виде строки), используя

getattr(Colours, Letter)

Из документации :

getattr(object, name[, default])

Возвращает значение названного атрибута объекта. имя должно быть строкой. Если строка является именем одного из атрибутов объекта, результатом будет значение этого атрибута. Например, getattr (x, 'foobar') эквивалентно x.foobar. Если именованный атрибут не существует, возвращается значение по умолчанию, если оно предоставлено, в противном случае возникает AttributeError.

0 голосов
/ 05 мая 2020

Просто используйте функцию getattr() 1 , которая предназначена для этого

class Colours:
   a = (255,0,0) #Tuple to be called

print(getattr(Colours, 'a'))
0 голосов
/ 05 мая 2020

Вам нужна встроенная getattr функция:

>>> getattr(Colours, Letter)
(255, 0, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...