python2.7 - Python “鸭子类型”的问题

查看:100
本文介绍了python2.7 - Python “鸭子类型”的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

class F1:
    pass

class S1(F1):

    def show(self):
        print 'S1.show'

class S2(F1):

    def show(self):
        print 'S2.show'

def Func(obj):
    print obj.show()

s1_obj = S1()
Func(s1_obj) 

s2_obj = S2()
Func(s2_obj)

输出结果是:
S1.show
None
S2.show
None

为什么会有none呢?

解决方案

python里面的函数,如果没有return的话,就会默认return None,你的代码中的show()都是没有return语句,因此obj.show()这个函数执行的时候,就会返回None, 然后你在Func中print的时候i, 就会打印None了。如果想不要的话,直接这样就好了啊

def Func(obj):
    obj.show() #不要print

这篇关于python2.7 - Python “鸭子类型”的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆