类和对象—为什么会多打印一个None出来
跟着小甲鱼创建的第一个类就让我迷惑了class Turtle: #Python类对象名约定大写字母开头
#方法
def climb(self):
print("爬呀爬")
def eat(self):
print("干饭人,干饭魂")
def run(self):
print("没想到吧,爷会跑")
def bite(self):
print("咬你哦")
def sleep(self):
print("困了,睡了,晚安,Zzz")
tt = Turtle()
print(tt.sleep()) 最后的print(tt.sleep())改成tt.sleep(),因为你所以方法都没有返回值,默认返回None,你打印方法的返回值,就是打印None。 要么就改成 tt.sleep() 直接调用函数
要么就吧 sleep 里面的字符赋值给一个 变量,在 sleep 函数里面 return 那个变量 本帖最后由 qin_yin 于 2020-12-28 21:00 编辑
你可以把方法看作一个函数,不过这个函数必须通过对象或者类对象+ '.'+函数名(方法名)来调用, 并且他是隶属于类对象和对象
现在我们把这个方法看作一个普通的函数,python的函数众所周知有返回值,返回返回值,没有返回值
返回None,而你现在的这个方法没有返回任何对象,所以返回None
过程解析:
print(tt.sleep())1 调用函数 tt.sleep()
2 执行函数内的代码 print("困了,睡了,晚安,Zzz")
3 返回 由于你没有设置返回值,python函数(方法)自动返回None
4 输出 print(tt.sleep()) 输出的内容就是函数返回值(方法) class Turtle: #Python类对象名约定大写字母开头
#方法
def climb(self):
print("爬呀爬")
def eat(self):
print("干饭人,干饭魂")
def run(self):
print("没想到吧,爷会跑")
def bite(self):
print("咬你哦")
def sleep(self):
print("困了,睡了,晚安,Zzz")
tt = Turtle()
tt.sleep() qin_yin 发表于 2020-12-28 20:53
你可以把方法看作一个函数,不过这个函数必须通过对象或者类对象+ '.'+函数名(方法名)来调用, 并且他是 ...
原来如此
页:
[1]