В python3 У меня есть следующий полный код:
class Test:
def __init__(self):
self.x = [42, 4711]
self.y = [4, 6]
self.z = 99
t = Test()
v = 'x[1]' # or can be 'y[0]' or can be 'z' ...
print(eval('t.'+v))
print(getattr(t,v))
, который выдает ошибку для последней строки
AttributeError: 'Test' object has no attribute 'x[1]'
Есть ли способ получить доступ к списку внутри объект через getattr
, или я должен использовать eval
в этом случае?
Подсказка: индекс является частью строки! Я не знаю, является ли атрибут, к которому я собираюсь получить доступ, списком или просто значением. Это необходимо для следующих случаев:
v = 'x[0]'
v = 'x[1]'
v = 'y[0]'
v = 'z'