# file: runme.py # This file illustrates the manipulation of C++ references in Python import example # ----- Object creation ----- print("Creating some objects:") a = example.Vector(3, 4, 5) b = example.Vector(10, 11, 12) print(" Created %s" % a.cprint()) print(" Created %s" % b.cprint()) # ----- Call an overloaded operator ----- # This calls the wrapper we placed around # # operator+(const Vector &a, const Vector &) # # It returns a new allocated object. print("Adding a+b") c = example.addv(a, b) print(" a+b = %s" % c.cprint()) # Note: Unless we free the result, a memory leak will occur del c # ----- Create a vector array ----- # Note: Using the high-level interface here print("Creating an array of vectors") va = example.VectorArray(10) print(" va = %s" % va) # ----- Set some values in the array ----- # These operators copy the value of $a and $b to the vector array va.set(0, a) va.set(1, b) va.set(2, example.addv(a, b)) # Get some values from the array print("Getting some array values") for i in range(0, 5): print(" va(%d) = %s" % (i, va.get(i).cprint())) # Watch under resource meter to check on this print("Making sure we don't leak memory.") for i in range(0, 1000000): c = va.get(i % 10) # ----- Clean up ----- print("Cleaning up") del va del a del b