subclass_native2_list.py 587 B

1234567891011121314151617181920212223242526
  1. class Base1:
  2. def __init__(self, *args):
  3. print("Base1.__init__", args)
  4. class Clist1(Base1, list):
  5. pass
  6. a = Clist1()
  7. print(len(a))
  8. # Not compliant - list assignment should happen in list.__init__, which is not called
  9. # because there's Base1.__init__, but we assign in list.__new__
  10. #a = Clist1([1, 2, 3])
  11. #print(len(a))
  12. print("---")
  13. class Clist2(list, Base1):
  14. pass
  15. # Not compliant - should call list.__init__, but we don't have it
  16. #a = Clist2()
  17. #print(len(a))
  18. # Not compliant - should call list.__init__, but we don't have it
  19. #a = Clist2([1, 2, 3])
  20. #print(len(a))