怎么会提示给类的实例 __init__
传递了 2 个参数?why 啊?
import unittest class Test(unittest.TestCase): def __init__(self): self.a = 1 def test1(self): self.assertEqual(self.a, 1) if __name__ == '__main__': unittest.main()
output:
....省略没用的 TypeError: __init__() takes 1 positional argument but 2 were given [Finished in 0.2s with exit code 1]
![]() | 1 ericls 2018-05-11 12:46:16 +08:00 via iPhone 这个你得看 长辈的 __init__ 怎么写的 另外 你这个需求 用 setUp? |
3 changrui0608 2018-05-11 12:55:46 +08:00 via Android 用 setUp 不要用__init__ |
4 wsds OP @changrui0608 不能用__init__还是咋地啊? |
5 changrui0608 2018-05-11 13:06:26 +08:00 via Android @wsds 这种框架测试类的生命周期管理是框架自身来做的,就按文档说的来吧 |
![]() | 7 nullcc 2018-05-11 13:27:35 +08:00 用 setUp/tearDown,对你这个例子而言,如果非要写__init__,可以这样: def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.a = 1 |
![]() | 8 mec 2018-05-11 13:41:16 +08:00 python 继承要考虑父类__init__的实现,必要时需要显式调用 |