相关疑难解决方法(0)

在子类化不是从`object`派生的python类时使用'super'(旧式?)

我正在使用OptionParserstd库模块的子类化optparser.(Python 2.5.2)当我尝试它时,我得到了异常:

TypeError: super() argument 1 must be type, not classobj
Run Code Online (Sandbox Code Playgroud)

OptionParser,它不是源于object.所以我object作为父类添加(如下所示)并且super正常工作.

from optparse import OptionParser, Option
class MyOptionParser(OptionParser, object):
    """Class to change 
    """
    def __init__(self,
             usage=None,
             option_list=None,
             option_class=Option,
             version=None,
             conflict_handler="error",
             description=None,
             formatter=None,
             add_help_option=True,
             prog=None,
             epilog=None,
            ):

      super(MyOptionParser, self).__init__(usage, option_list, option_class, version, conflict_handler, description, formatter, add_help_option, prog, epilog)

if __name__ == '__main__':
    """Run a quick test
    """
    parser = MyOptionParser()
    parser.add_option("-t", "--test", type="string", dest="test")
    (options, args) = parser.parse_args() …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
360
查看次数

标签 统计

python ×1