Как я могу вызвать атрибут объекта, используя что-то введенное пользователем? - PullRequest
0 голосов
/ 24 апреля 2020

'' '

class python_object:
    def __init__(self, id, username, password):
        self.id = id
        self.username = username
        self.password = password

#object_dict is made by importing JSON objects and looks like this 

object_dict = {1: <__main__.python_object object at 0x00000283EBD7CEC8>, 
2: <__main__.python_object object at 0x00000283EBD7CF08>, 
3: <__main__.python_object object at 0x00000283EBD7CF48>, 
4: <__main__.python_object object at 0x00000283EBD7CF88>}

#///some other code///

id = "10021"
attribute_to_find = input("Enter an Attribute: ")

for i in range(1, len(object_dict)+1):
    if (object_dict.get(i)).id == id_to_find:
        print(object_dict.get(i).attribute_to_find)

' ''

Это не работает, потому что Python ищет атрибут «python_object» с именем attribute_to_find, так много я понял.

Я хочу, чтобы пользователь мог ввести атрибут и заставить программу распечатать значение этого атрибута в экземпляре класса с идентификатором «10021» («id» - еще один атрибут «python_object»)

Кто-нибудь знает, как я мог бы go сделать это?

Спасибо:)

1 Ответ

3 голосов
/ 24 апреля 2020

Используйте getattr(), передавая объект в качестве первого параметра, и строковое имя атрибута в качестве второго параметра следующим образом:

print(getattr(object_dict.get(i), attribute_to_find))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...