代码之家  ›  专栏  ›  技术社区  ›  ereOn

_初始化、继承和变量参数

  •  1
  • ereOn  · 技术社区  · 14 年前

    我想将现有的 斯科斯 类(命名) SConsEnvironment )有以下几点 __init__ 原型:

     def __init__(self,
                     platform=None,
                     tools=None,
                     toolpath=None,
                     variables=None,
                     parse_flags = None,
                     **kw):
    

    在我自己的班级里 Environment ,源自 S环境 ,我试图做到:

    def __init__(self,
                 platform=None,
                 tools=None,
                 toolpath=None,
                 variables=None,
                 parse_flags = None,
                 **kw):
    
        if ('ENV' not in kw):
            kw['ENV'] = os.environ.copy()
    
        super(EIDEnvironment, self).__init__(
                platform,
                tools,
                toolpath,
                variables,
                parse_flags,
                kw) //Error here
    

    python抱怨:

    TypeError: __init__() takes at most 6 arguments (7 given):
    

    除非我再也不知道怎么数数了,否则这两个都是 爱因斯坦 函数接受7个参数。我相信这是一个不起作用的很好的理由,但它是什么?我如何解决这个问题?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Doug    14 年前

    super(EIDEnvironment, self).__init__(...) kw **kw

        2
  •  1
  •   slosd    14 年前

    super(EIDEnvironment, self).__init__(
                platform,
                tools,
                toolpath,
                variables,
                parse_flags,
                **kw)