python3正常运行在python2下则出错了,出错代码如下
class MyLogging(logging.Logger):
def __init__(self, name, level=logging.INFO, file=None, hint_show=True):
"""
:param name: 日志名字
:param level: 级别
:param file: 日志文件名称
:param hint_show: 日志控制台提示(默认为True 自动开启)
"""
# 继承logging模块中的 Logger 类,因为里面实现了各种各样的方法,很全面,但是初始化很简单
# 所以我们需要继承后把初始化再优化下,变成自己想要的。
super().__init__(name, level) #这里错误了
解决方案:
修改为
super(MyLogging,self).__init__(name, level)
例子参考(1.单继承时super()和__init__()实现的功能)
class Base(object):
def __init__(self):
print 'Base create'
class childA(Base):
def __init__(self):
print 'creat A ',
Base.__init__(self)
class childB(Base):
def __init__(self):
print 'creat B ',
super(childB, self).__init__()
base = Base()
a = childA()
b = childB()
#输出:
Base create
creat A Base create
creat B Base create
详细解析传送门