问题:在学习类和对象的过程中,定义一个类方法是打印,在实例化后,打印实例的方法时,会多打印一行“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马云的公司是阿里巴巴
王健林的公司是万达集团