[英]Python Cmd module, subclassing issue
我正在尝试找出这段代码中没有用的东西:
#!/usr/bin/python
import cmd
class My_class (cmd.Cmd):
"""docstring for Twitter_handler"""
def __init__(self):
super(My_class, self).__init__()
if __name__ == '__main__':
my_handler = My_class()
这是我得到的错误
Traceback (most recent call last):
File "main.py", line 12, in <module>
my_handler = My_class()
File "main.py", line 9, in __init__
super(My_class, self).__init__()
TypeError: super() argument 1 must be type, not classobj
如果我将“My_class”的超类更改为对象,它可以正常工作。 我哪里错了?
cmd.Cmd不是Python 2.5,2.6,2.7中的新样式类。
请注意,您的代码不会在Python 3.0抛出异常。
因此,如果super()不起作用,请使用:
import cmd
class My_class(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
如果MyClass
扩展了object
你仍然可以使用super()
。 即使cmd.Cmd
模块不是新式类,这仍然cmd.Cmd
。 像这样:
#!/usr/bin/python
import cmd
class My_class (cmd.Cmd, object):
"""docstring for Twitter_handler"""
def __init__(self):
super(My_class, self).__init__()
if __name__ == '__main__':
my_handler = My_class()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.