# InstanceTests.py Copyright (c) Kari Laitinen # http://www.naturalprogramming.com # 2006-05-29 File created. # 2022-12-27 Converted to Python 3. # Testing built-in functions isinstance() and issubclass() # Note that the second parameter (argument) for these functions may # be a tuple. from Date import Date class TestClass : def __init__( self ) : print( "\n TestClass constructor executed." ) class DerivedClass ( TestClass ) : pass # The main program begins. some_test_object = TestClass() some_derived_class_object = DerivedClass() print( "\n isinstance( some_test_object, Testclass ) returns %s" \ % isinstance( some_test_object, TestClass ) ) print( "\n isinstance( some_derived_class_object, TestClass ) returns %s" \ % isinstance( some_derived_class_object, TestClass ) ) print( "\n isinstance( some_test_object, DerivedClass ) returns %s" \ % isinstance( some_test_object, DerivedClass ) ) print( "\n isinstance( some_test_object, ( DerivedClass, TestClass ) ) returns %s" \ % isinstance( some_test_object, ( DerivedClass, TestClass ) ) ) print( "\n isinstance( some_test_object, ( Date, str ) ) returns %s" \ % isinstance( some_test_object, ( Date, str) ) ) print( "\n issubclass( DerivedClass, TestClass ) returns %s" \ % issubclass( DerivedClass, TestClass ) ) print( "\n issubclass( DerivedClass, ( Date, str ) ) returns %s" \ % issubclass( DerivedClass, ( Date, str ) ) ) print( "\n issubclass( DerivedClass, ( Date, TestClass ) ) returns %s" \ % issubclass( DerivedClass, ( Date, TestClass ) ) ) # The last statement prints True because one class given in the tuple # is a base class of DerivedClass