Печать имени объекта

#python #oop

#python #ооп

Вопрос:

Я пытаюсь напечатать имя объекта, определенного в инструкции print. здесь имя объекта — «rushi», но я получаю некоторую ошибку.

 class Fas:
    gender=''
    age=''
    clg=''
    city=''
    pass

rushi=Fas()
rushi.gender='male'
rushi.age=27
rushi.clg='TAPMI'
rushi.city='ahmendabad'
print(rushi.gender)
    
def fas_info(student):
    student.name
    return ("the name of the student is {}, his age is {} studying in {} and hails from {}".format(student,student.age,student.clg,student.city))
    print(fas_info(rushi))
 

вывод:

 male
the name of the student is **<__main__.Fas object at 0x0000027BF5B39250>**, his age is 27 studying in TAPMI and hails from ahmendabad
 

Ожидаемый результат:

 the name of the student is **rushi**, his age is 27 studying in TAPMI and hails from ahmendabad
 

Ответ №1:

Ваша format строка неверна. Вы используете student вместо student.name :

 .format(student,student.age,student.clg,student.city)
 

Результат, который вы получаете, — это то, что происходит, когда вы печатаете весь объект вместо его свойства.

Если вы замените student на student.name , он выведет имя:

 .format(student.name,student.age,student.clg,student.city)
 

В качестве альтернативы, если вы определяете __str__ метод для учащегося и возвращаете self.name его, тогда при печати student будет напечатано его имя.