鱼C论坛

 找回密码
 立即注册
查看: 2298|回复: 10

[已解决]【零基础向】print()不太懂了

[复制链接]
发表于 2020-3-18 17:45:31 | 显示全部楼层 |阅读模式

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

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

x
在跟一个练习,可能铺垫过长。。。大概就是类的继承问题。
import random as r

class Animal():
    def __init__(self, age):
        self.age = age

    def get_age(self):
        return self.age

    def set_name(self, name):
        self.name = name

    def get_name(self):
        try:
            return self.name
        except:
            print("Set name first!")

    def __str__(self):
        return self.name + "age:" + str(self.age) 

    __repr__ = __str__

class Cat(Animal):
    def speak(self):
        print("~meow~")
        
    def __str__(self):
        try:
            return self.name + " is a " + str(self.age) + "-years old cat!"
        except:
            return "A meow has no name yet!"
    
    __repr__ = __str__


class Human(Animal):
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.friends = []

    def get_friends(self):
        return self.friends

    def add_friends(self, other):
        if other.name not in self.friends:
            self.friends.append(other.name)
    def speak(self):
        print("Hello world! %s" %self.friends[0])

    def age_diff(self, other):
        diff = abs(self.age - other.age)
        print("They have",diff,"years difference.")

    def __str__(self):
        return "Human " + self.name + "age:" + str(self.age) + " have friends " + str(self.friends)

    __repr__ = __str__


class Student(Human):
    def __init__(self, name, age, major = None):
         self.name = name
         self.age = age
         self.major = major

    def change_major(self, major):
        self.major = major
        return self.major

    def speak(self):
        R = r.random()
        if R < 0.25:
            print("Zzzzz...")
        elif  0.25 <= R < 0.5:
            print("I hunger...")
        elif 0.5 <= R < 0.75:
            print("Maybe I need to study...")
        else:
            print("Go jerk it out!!!")

    def __str__(self):
        return "Student : " + self.name + " age : " + str(self.age) + "==>Major : " + str(self.major)

    __repr__ = __str__

好的,我开始run了,此时输入
>>> a = Student("Jimmy",666, "PreMED")
>>> a
Student : Jimmy age : 666==>Major : PreMED
>>> print(a.get_name(), "say:", a.speak())
I hunger...
Jimmy say: None

问题在print()内,应该是调用了speak(),因为输出了speak的内容,但是为什么没有按照格式输出?而且还None了?
最佳答案
2020-3-18 17:50:03
楼上说的是对的,别等大神了,自信点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-18 17:47:04 | 显示全部楼层
突然明白了 ,应该在 speak()里用 return,不应该用print...

不过还是等大神解读一下吧  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 17:47:49 | 显示全部楼层
a.speak没有返回值啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 17:50:03 | 显示全部楼层    本楼为最佳答案   
楼上说的是对的,别等大神了,自信点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-18 17:51:04 | 显示全部楼层
自信一点,你的理解很对哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-18 17:52:16 | 显示全部楼层
要相信自己,要像zltzlt或者是一个账 号一样,是吧?@一个账号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-18 18:02:50 | 显示全部楼层
感谢大家!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 18:11:03 | 显示全部楼层
蒋博文 发表于 2020-3-18 17:52
要相信自己,要像zltzlt或者是一个账 号一样,是吧?@一个账号

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 18:50:21 | 显示全部楼层
蒋博文 发表于 2020-3-18 17:52
要相信自己,要像zltzlt或者是一个账 号一样,是吧?@一个账号

??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 22:59:25 | 显示全部楼层

我的意思是要向你学习你那相信自己的精神,对不?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 23:00:07 | 显示全部楼层

我的意思是要向你学习你那相信自己的精神,对不?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-18 02:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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