isinstance.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # Testing with builtin types
  2. assert isinstance(10, int) == True
  3. assert isinstance("Hello, world!", str) == True
  4. assert isinstance([1, 2, 3, 4, 5], list) == True
  5. assert isinstance({"key": "value"}, dict) == True
  6. assert isinstance(3.14, float) == True
  7. assert isinstance(object(), object) == True
  8. assert isinstance(10, str) == False
  9. class MyClass:
  10. pass
  11. class BaseClass(object):
  12. def __init__(self):
  13. self.a = 1
  14. class DerivedClass(BaseClass):
  15. def __init__(self):
  16. super().__init__()
  17. self.b = 2
  18. base_instance = BaseClass()
  19. derived_instance = DerivedClass()
  20. # Instances of DerivedClass should also be instances of BaseClass
  21. assert isinstance(MyClass(), object) == True
  22. assert isinstance(base_instance, object) == True
  23. assert isinstance(base_instance, BaseClass) == True
  24. assert isinstance(derived_instance, BaseClass) == True
  25. # However, instances of BaseClass are not instances of DerivedClass
  26. assert isinstance(base_instance, DerivedClass) == False
  27. # And instances of DerivedClass are, of course, instances of DerivedClass
  28. assert isinstance(derived_instance, DerivedClass) == True
  29. print('PASS')