module.__init__() takes at most 2 arguments error in Python

后端 未结 3 1199
北荒
北荒 2021-01-05 23:16

I have 3 files, factory_imagenet.py, imdb.py and imagenet.py

factory_imagenet.py has:

import datasets.imagenet

It

3条回答
  •  孤城傲影
    2021-01-06 00:04

    Here's another possible cause...

    If you have an __init__.py file, make sure you import the super class before the derived ones.

    Here's the WRONG way to do it:

    from mymodule.InheritedA import InheritedA
    from mymodule.InheritedB import InheritedB
    from mymodule.Parent import Parent
    

    The above will give an error:

    TypeError: module.__init__() takes at most 2 arguments (3 given)
    

    However this will work:

    from mymodule.Parent import Parent
    from mymodule.InheritedA import InheritedA
    from mymodule.InheritedB import InheritedB
    

    For example the file InheritedA.py might be:

    from mymodule import Parent
    
    class InheritedA(Agent):
        def __init__(self):
            pass
    
        def overridden_method(self):
            print('overridden!!')
    

提交回复
热议问题