subclass_native1.py 728 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. class mylist(list):
  2. pass
  3. a = mylist([1, 2, 5])
  4. # Test setting instance attr
  5. a.attr = "something"
  6. # Test base type __str__
  7. print(a)
  8. # Test getting instance attr
  9. print(a.attr)
  10. # Test base type ->subscr
  11. print(a[-1])
  12. a[0] = -1
  13. print(a)
  14. # Test another base type unary op
  15. print(len(a))
  16. # Test binary op of base type, with 2nd arg being raw base type
  17. print(a + [20, 30, 40])
  18. # Test binary op of base type, with 2nd arg being same class as 1st arg
  19. # TODO: Faults
  20. #print(a + a)
  21. def foo():
  22. print("hello from foo")
  23. try:
  24. class myfunc(type(foo)):
  25. pass
  26. except TypeError:
  27. print("TypeError")
  28. # multiple bases with layout conflict
  29. try:
  30. class A(type, tuple):
  31. None
  32. except TypeError:
  33. print('TypeError')