Вызов функции, ссылающейся на объект с входа python - PullRequest
0 голосов
/ 14 апреля 2020

Итак, у меня есть класс с функцией печати. ​​

Цель: Я хочу иметь возможность написать «c1» в поле ввода, чтобы сделать вызов, эквивалентный c1.prnt ().

Текущая ошибка говорит " AttributeError: у объекта 'str' нет атрибута 'prnt' "

Я предполагаю, что входные данные передаются в виде строки, но должны быть в этом случае передается как указатель на c1, как мне это сделать?

    class claim:
        def __init__(self,text,support_list):
            authors = ["Author A","Author B"]
           #base_properties.__init__(self,authors)
            self.text = text
            self.support_list = support_list

        def prnt(self):
            n = len(self.support_list)-1
            print(f"\nThe claim -{self.text}- is backed by {c1.support_list[n].name} and {n} more.") 

   c1 = claim("Tax is mean",[s1,s2])

   input("What claim do you want to print?").prnt()

1 Ответ

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

Поместите объекты в словарь, чтобы можно было сопоставить имена с объектами.

claims = {}
claims['c1'] = claim("Tax is mean",[s1,s2])

claims[input("What claim do you want to print?")].prnt()
...