豆腐ine 发表于 2021-11-10 18:42:46

学类的时候调用方法输出会多一个None

刚学到类这一章
在调用方法时输出,能输出出我想要的东西,但是会多一个None
查了百度说没有用return返回,我试了一下类中没法用retrun
请问怎么把None去掉



这是我的代码:

class Dog:# 在python中,首字母大写的名称被称为类

    def __init__(self, name, year):
      self.name = name
      self.year = year

    def sit(self):# 类中的函数被称为方法,类中的函数被称为方法,类中的函数被称为方法
      print(f"{self.name} is sitting")         # 之前学到的一切函数都适用于方法
      return

    def roll_over(self):
      print(f"{self.name} rolled over!")
      return

    def name_all(self):
      print(f"my dog's name is {self.name}")


my_dog = Dog("皮皮", 10)
print(my_dog.name)
print(my_dog.year)
print()
print(my_dog.sit())
print(my_dog.roll_over())
print(my_dog.name_all())


比如调用 ‘sit’这个方法,能输出:dog is sitting
但是下面一行会有个None
代码少了还好,多的话看着头疼
我用的是pycharm写的
请各位解答疑惑,谢谢!

傻眼貓咪 发表于 2021-11-10 19:07:10

class Dog:# 在python中,首字母大写的名称被称为类

    def __init__(self, name, year):
      self.name = name
      self.year = year

    def sit(self):# 类中的函数被称为方法,类中的函数被称为方法,类中的函数被称为方法
      print(f"{self.name} is sitting")         # 之前学到的一切函数都适用于方法

    def roll_over(self):
      print(f"{self.name} rolled over!")

    def name_all(self):
      print(f"my dog's name is {self.name}")


my_dog = Dog("皮皮", 10)
print(my_dog.name)
print(my_dog.year)
print()
my_dog.sit() # 去掉 print() 函数便可,如上:在 sit() 函数里面已经有 print() 了
my_dog.roll_over() # 同上
my_dog.name_all() # 同上

傻眼貓咪 发表于 2021-11-10 19:08:30

你的代码 print() 返回 sit()、roll_over()、和 name_all() 里面的值(值是 None)

suchocolate 发表于 2021-11-10 19:09:02

本帖最后由 suchocolate 于 2021-11-10 19:11 编辑

print(my_dog.sit())# 这3个函数里面已经用有print了,所以就不需要再在调用的时候用print,否则print打印的就是函数的返回值。
print(my_dog.roll_over())
print(my_dog.name_all())

改成
my_dog.sit()
my_dog.roll_over()
my_dog.name_all()

#体会一下return:
def test():
    print('函数内的打印')
    return '返回值'


test()
print('=' * 100)
print(test())

豆腐ine 发表于 2021-11-10 19:14:14

傻眼貓咪 发表于 2021-11-10 19:08
你的代码 print() 返回 sit()、roll_over()、和 name_all() 里面的值(值是 None)

好的,非常感谢!

豆腐ine 发表于 2021-11-10 19:22:30

suchocolate 发表于 2021-11-10 19:09
print(my_dog.sit())# 这3个函数里面已经用有print了,所以就不需要再在调用的时候用print,否则print打 ...

非常感谢!我去敲一下这个retur
页: [1]
查看完整版本: 学类的时候调用方法输出会多一个None