python2.7 - Python “鸭子类型”的问题
本文介绍了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屋!
查看全文