Simple Inherit from class in Python throws error
嗨,我刚开始使用python,我目前正在为移动设备开发一个UI测试应用程序,我必须使用一个定制的渲染软键盘。
钮扣
1 2 3 4 5 6 7 | class Button(): def __init__(self, name, x, y, x2=None, y2=None): self.name = name self.x = x self.y = y self.x2 = x2 self.y2 = y2 |
键盘键
1 2 3 4 | import Button class KeyboardKey(Button): def __init__(self, name, x, y): super(self.__class__, self).__init__(name, x, y) |
这是我的错误:
1 2 3 4 5 | Traceback (most recent call last): File"/home/thomas/.../KeyboardKey.py", line 2, in class KeyboardKey(Button): TypeError: Error when calling the metaclass bases module.__init__() takes at most 2 arguments (3 given) |
您在代码中的操作方式是从模块
为了避免将来出现这种情况,我强烈建议用小写字母命名模块,并将类大写。因此,更好的命名方法是:
1 2 3 4 | import button class KeyboardKey(button.Button): def __init__(self, name, x, y): super(self.__class__, self).__init__(name, x, y) |
python中的模块是普通对象(
1 2 3 | >>> import base64 >>> base64.__init__ <method-wrapper '__init__' of module object at 0x00AB5630> |
参见用法:
1 2 3 4 5 | >>> base64.__init__('modname', 'docs here') >>> base64.__doc__ 'docs here' >>> base64.__name__ 'modname' |