Python2.x和3.x之间的坑

Python2.x和3.x之间有一些代码有一些改变,故在我所遇到这些改变之处,记录下来,为了自己也可以分享出来,让有缘人看到,毕竟我的博客没有seo,全靠缘分.

super方法

在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用
super 来实现!

1
2
3
4
5
6
7
8
9
class Animal(object):
def __init__(self, name):
self.name = name
def greet(self):
print 'Hello, I am %s.' % self.name
class Dog(Animal):
def greet(self):
super(Dog, self).greet() # Python3 可使用 super().greet() 这就是个小坑
print 'WangWang...'

详解super的含义 ,这篇文章记录了super并非执行父类的init函数,这是需要注意的.