为了账号安全,请及时绑定邮箱和手机立即绑定

求帮找代码异常打印输出

# Enter a code
class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
    def who(self):
        return 'I am a Person, my name is %s' % self.name

class Student(Person):
    def __init__(self, name, gender, score):
        super(Student, self).__init__(name, gender)
        self.score = score
    def who(self):
        return 'I am a Student, my score is %s' % self.score

class Teacher(Person):
    def __init__(self, name, gender, course):
        super(Teacher, self).__init__(name, gender)
        self.course = course
    def who(self):
        return 'I am a Teacher,teching %s'%self.course
        
class SkillMixin(object):
    def __init__(self):
        pass
    
    def get_skill(self):
        print('I hava a skill')
        
class BasketballSkillMixin(SkillMixin):
    def __init__(self):
        super(BasketballSkillMixin,self).__init__()
        self.skill='basketball'
    
    def get_skill(self):
        print('I hava a %s skill'%self.skill)

class FootballSkillMixin(SkillMixin):
    def __init__(self):
        super(FootballSkillMixin,self).__init__()
        self.skill='football'
        
    def get_skill(self):
        print('I hava a %s skill'%self.skill)

class MyBasketStudent(BasketballSkillMixin,Student):
    def __init__(self,name,gender,score):
        Student.__init__(self,name,gender,score)
        BasketballSkillMixin.__init__(self)
        
class MyFootballTeacher(FootballSkillMixin,Teacher):
    def __init__(self,name,gender,course):
        Teacher.__init__(self,name,gender,course)
        FootballSkillMixin.__init__(self)
    
a=MyBasketStudent('xiaoming','man',98)
print(a.who())
print(a.get_skill())
# b=MyFootballTeacher('lixing','man','physical')
# print(b.who())
# print(b.get_skill())

http://img1.sycdn.imooc.com//63d3fb5f0001c2f803930202.jpg

疑问:为啥最后一行多打印了一个None?

正在回答

2 回答

 print('I hava a %s skill'%self.skill)都改成return 'I hava a %s skill'%self.skill。

或者print(a.get_skill())改成a.get_skill()直接运行,因为你定义的def get_skill(self):自带打印了。

0 回复 有任何疑惑可以回复我~

参考下这个呢https://www.zhihu.com/question/434250863,可能是这个原因

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求帮找代码异常打印输出

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信