Я прочитал все вопросы и ответы по этому поводу, но ни один из них не помог, поскольку использование var из одного из ответов было близко, но мне нужно использовать одну и ту же функцию с разными объектами. Что я должен изменить в функции, чтобы мне не приходилось создавать несколько функций для каждого объекта, я имею в виду, что у меня есть другие объекты. Человек, растения, мне нужно создать функцию для каждого, просто меняя синтаксис животного:

class Animal(object):
      def __init__(self):
          self.legs = 2
          self.name = 'Dog'
          self.color= 'Spotted'
          self.smell= 'Alot'
          self.age  = 10
          self.kids = 0

def get_info(self) :
    if __name__ == '__main__':
       animal = Animal()
       temp = vars(animal)
       for item in temp:
           print(item , ' : ' , temp[item])
0
Hasan Fares 28 Май 2017 в 01:48

2 ответа

Лучший ответ

Я понял, что все, что мне нужно было сделать, это назначить пользовательский ввод переменной, а затем вызвать ее из таких объектов:

class Animal(object):
      def __init__(self):
          self.legs = 2
          self.name = 'Dog'
          self.color= 'Spotted'
          self.smell= 'Alot'
          self.age  = 10
          self.kids = 0

 noun = input()
 def get_info(noun) :
     if __name__ == '__main__':
        character = Object.objects[noun]
        temp = vars(character)
        for item in temp:
            print(item , ' : ' , temp[item])
0
Hasan Fares 27 Май 2017 в 23:55

Вместо жесткого кодирования переменной вы должны сделать это:

class Animal(object):
      def __init__(self, legs, name, color, smell, age, kids):
          self.legs = legs
          self.name = name
          self.color= color
          self.smell= smell
          self.age  = age
          self.kids = kids

if __name__ == '__main__':
    animal = Animal(2, 'Dog', 'Spotted', 'Alot', 10, 0)
    temp = vars(animal)
    for item in temp:
        print(item , ' : ' , temp[item])
0
Mr. Nobody 27 Май 2017 в 23:04