我有以下代码:
class StudentData:
"Contains information of all students"
studentNumber = 0;
def __init__(self,name,age,marks):
self.name = name;
self.age = age;
self.marks = marks;
StudentData.studentNumber += 1;
def displayStudentNumber(self):
print 'Total Number of students = ',StudentData.studentNumber;
def displayinfo(self):
print 'Name of the Student: ',self.name;
print 'Age of the Student: ', self.age;
print 'Marks of the Student: ', self.marks;
student1 = StudentData('Ayesha',12,90)
student2 = StudentData('Sarah',13,89)
print "*Student number in case of student 1*\n",student1.displayStudentNumber();
print "Information of the Student",student1.displayinfo();
print "*Student number in case of student 2*\n",student2.displayStudentNumber();
print "Information of the Student",student2.displayinfo();
输出是:
*Student number in case of student 1* Total Number of students = 2 None Information of the Student Name of the Student: Ayesha Age of the Student: 12 Marks of the Student: 90 None *Student number in case of student 2* Total Number of students = 2 None Information of the Student Name of the Student: Sarah Age of the Student: 13 Marks of the Student: 89 None
我无法理解为什么我的输出中会出现这些“无”。谁能解释一下呢?
答案 0 :(得分:2)
你应该返回这些字符串,而不是打印它们。没有返回值的函数返回None
。另外请不要在Python中使用分号。
def displayStudentNumber(self):
return 'Total Number of students = {0}'.format(StudentData.studentNumber)
def displayinfo(self):
return '''\
Name of the Student: {0}
Age of the Student: {1}
Marks of the Student {2}'''.format(self.name, self.age, self.marks)
答案 1 :(得分:1)
因为您的函数displayStudentNumber()
和displayinfo()
不会返回任何内容。
尝试将其更改为:
def displayStudentNumber(self):
return 'Total Number of students = ' + str(StudentData.studentNumber)
def displayinfo(self):
print 'Name of the Student: ',self.name;
print 'Age of the Student: ', self.age;
print 'Marks of the Student: ', self.marks;
return ''
由于该函数不返回任何内容,因此默认为None
。这就是它返回的原因。
顺便说一下,python中不需要分号。
答案 2 :(得分:1)
您在输出中得到None
,因为您正在打印调用方法displayStudentNumber
的返回值。默认情况下,这会返回None
。
您要么打印方法的返回值,要么只想打印。试试这样的事情,
print "Student number in case of student 1"
student1.displayStudentNumber()
或
def displayStudentNumber(self):
return 'Total Number of students = %d' % StudentData.studentNumber
和
print "Student number in case of student 1", student1.displayStudentNumber()