输出后“无”

时间:2014-11-16 15:16:48

标签: python inheritance

class info(object):
    def __init__(self, name, age):

        self.name = name
        self.age = age

    def tell(self):
        print "infotell"


class subinfo(info):
    def __init__(self, name,age, grade):
        info.__init__(self, name, age)
        self.grade = grade
    def tell(self):
        print "sub-infotell"


tom = subinfo("Jack", 13, 98)


print tom.tell()

输出是:

sub_infotell
None

我只是想知道在哪里"没有"来自?如何避免输出"无"?

1 个答案:

答案 0 :(得分:5)

print行中删除print tom.tell()

您的tell()方法已经完成了所有打印,因此无需打印该方法的返回值。由于您未在方法中实际使用return,因此会返回默认值None

>>> def ham():
...     foo = 'bar'
...     # no return used 
... 
>>> print ham()
None
>>> def spam():
...     return 'bar'
... 
>>> print spam()
bar

请注意打印ham()的返回值如何打印None

另一种方法是,您从方法中删除print语句,然后使用return "sub-infotell"