首页 > 其他分享 >为什么在打印对象时会多打印一个“None”

为什么在打印对象时会多打印一个“None”

时间:2023-02-21 00:11:07浏览次数:38  
标签:None self 打印 introduce print 时会 company

问题:在学习类和对象的过程中,定义一个类方法是打印,在实例化后,打印实例的方法时,会多打印一行“None”
问题代码:

class People:
    def __init__(self, name, company):
        self.name = name
        self.company = company

    def introduce(self):
        print(f"{self.name}的公司是{self.company}")


mayun = People("马云", "阿里巴巴")
wangjianlin = People("王健林", "万达集团")

print(mayun.introduce())
print(wangjianlin.introduce())

输出:

马云的公司是阿里巴巴
None
王健林的公司是万达集团
None

问题原因:每个函数方法都有一个return值,如果不定义,则默认返回为None。在问题场景下,打印被调用了2次,第一次是内层的调用:introduce()自身调用内部的print,打印出了汉字内容;第二次是外层的调用:打印introduce()的返回值,由于方法本身未定义返回值,所以此时返回默认值None

修改方法:在introduce定义时,使用return替换掉print

def introduce(self):
        return(f"{self.name}的公司是{self.company}")

输出:

马云的公司是阿里巴巴
王健林的公司是万达集团

标签:None,self,打印,introduce,print,时会,company
From: https://www.cnblogs.com/nomountain/p/17139491.html

相关文章