#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
будет напечатано его имя.