These are mostly workarounds for static class members not being supported for old style classes, as documented in Python.html, "C++ classes".
34 lines
431 B
Python
34 lines
431 B
Python
from smart_pointer_member import *
|
|
|
|
def is_new_style_class(cls):
|
|
return hasattr(cls, "__class__")
|
|
|
|
f = Foo()
|
|
f.y = 1
|
|
|
|
if f.y != 1:
|
|
raise RuntimeError
|
|
|
|
b = Bar(f)
|
|
b.y = 2
|
|
|
|
if f.y != 2:
|
|
print f.y
|
|
print b.y
|
|
raise RuntimeError
|
|
|
|
if b.x != f.x:
|
|
raise RuntimeError
|
|
|
|
if b.z != f.z:
|
|
raise RuntimeError
|
|
|
|
if is_new_style_class(Bar): # feature not supported in old style classes
|
|
if Foo.z == Bar.z:
|
|
raise RuntimeError
|
|
|
|
|
|
|
|
|
|
|
|
|