鱼C论坛

 找回密码
 立即注册
查看: 1258|回复: 5

[已解决]学类的时候调用方法输出会多一个None

[复制链接]
发表于 2021-11-10 18:42:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
刚学到类这一章
在调用方法时输出,能输出出我想要的东西,但是会多一个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() # 同上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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() # 同上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-11-10 19:08:30 | 显示全部楼层
你的代码 print() 返回 sit()、roll_over()、和 name_all() 里面的值(值是 None)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 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())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-11-10 19:14:14 | 显示全部楼层
傻眼貓咪 发表于 2021-11-10 19:08
你的代码 print() 返回 sit()、roll_over()、和 name_all() 里面的值(值是 None)

好的,非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

非常感谢!我去敲一下这个retur
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 20:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表