[其他] 为什么 打印出来None。困惑好久。
abcgoup
2009-03-27
大家好: 这是 《简明Python教程·chm.chm》中的一段程序(我自己敲的)
结果: (Initialized SchoolMember: Mrs Shrividya) (Initialized teacher Mrs Shrividya) (Initialized SchoolMember: Swaroop) (Initizlized a student Swaroop) Name:"Mrs Shrividya" Age:"40" Salary: "30000" None Name:"Swaroop" Age:"22" Marks: "75" None Represent a teacher 这里没什么会多两个 None。我找了很久原因,都没有找出来。请大家帮忙指教。。非常感谢。 #filename:inherit.py ######################################################################## class SchoolMember: """Represent a school member""" #---------------------------------------------------------------------- def __init__(self,name, age): """Constructor""" self.name = name self.age = age print '(Initialized SchoolMember: %s)' %self.name def tell(self): '''Tell my details.''' print 'Name:"%s" Age:"%s"' % (self.name, self.age), ######################################################################## class Teacher(SchoolMember): """Represent a teacher""" #---------------------------------------------------------------------- def __init__(self,name ,age,salary): """Constructor""" SchoolMember.__init__(self,name,age) self.salary = salary print '(Initialized teacher %s)' %self.name def tell(self): SchoolMember.tell(self) print 'Salary: "%d"' % self.salary ######################################################################## class Student(SchoolMember): """Represent a student""" #---------------------------------------------------------------------- def __init__(self,name,age,marks): """Constructor""" SchoolMember.__init__(self,name,age) self.marks = marks print '(Initizlized a student %s)' %self.name def tell(self): SchoolMember.tell(self) print 'Marks: "%d"' % self.marks t = Teacher('Mrs Shrividya',40,30000) s= Student('Swaroop',22,75) members =[t,s] for member in members: print member.tell() |
|
香克斯
2009-03-30
print member.tell()
你的tell()方法有返回值吗? |
|
abcgoup
2009-03-31
香克斯 写道 print member.tell()
你的tell()方法有返回值吗? 你是对的。 在Python中方法的默认返回值是None。 所以打印除了None 这是与其它程序设计语言不同的地方。 谢谢! |
|
phyeas
2009-04-01
js的函数默认返回undefined
|
|
linychuo
2009-04-15
print member.tell() 将这个print 去掉就可以了,因为你在class里的tell方法已经print了,所以这里不需要再print了.
|
|
abcgoup
2009-05-18
linychuo 和香克斯
是对的。 在Python中方法的默认返回值是None。 所以打印除了None 这是与其它程序设计语言不同的地方。 该贴已结!
|