老师,我的代码为什么运行起来那么多得None,好奇怪

来源:1-2 【学前导学】Python全栈工程师课程的整体介绍

James_summers

2020-08-18 19:13:28

class Person:
    def __init__(self,name,gender):
        self.name=name
        self.gender=gender

    def speak(self):
        print('hello ! 我是{}'.format(self.name))

    def relation(self):
        pass

class Student(Person):
    def __init__(self,name,gender,score,major):
        Person.__init__(self,name,gender)
        self.score=score
        self.major=major
        self.__stu_num='2018014002'

    def speat(self):
        print('我的学号为{},很高兴认识大家'.format(self.__stu_num))

    def identify_stu(self):
        if self.__stu_num=='2018014002':
            print('我的分组已经完成')

        else:
            print('请稍后,马上为你自动分组')



    def relation(self):
        if isinstance(Student,Person):
            print('我的父类是Person')
        else:
            print('正在查询中')

if __name__=='__main__':
    stu=Student('小明','男',90,'数学')
    result=stu.speak()
    print(stu.speat())
    print(result)
    print(stu.identify_stu())
    print(stu.relation())

http://img.mukewang.com/climg/5f3bb7d50939e9f006560486.jpg

写回答

1回答

好帮手慕雪

2020-08-19

由于speat()等方法并没有返回值,而调用处又print(stu.speat()),所以就会多输出None。可以有两种解决方式:1)同学可以修改一下你的调用方式,就不会有多余的None输出了。

http://img.mukewang.com/climg/5f3c8aa7099bd0ec03550253.jpg

2)把方法中的print改为return

http://img.mukewang.com/climg/5f3c8b35099c930105420558.jpg

如果我的回答解决了您的疑惑,请采纳,祝学习愉快~~~~

1

0 学习 · 2433 问题

查看课程