%module python_pythoncode // github issue#379 - these examples failed with 3.0.5 and earlier (at least as // far back as 1.3.37): struct TYPE { %pythoncode %{ def one(): a = 1 # Comment XXXX return a %} }; %define %bar %pythoncode %{ def one(): a = 1 # return a %} %enddef struct TYPE2 { %bar }; %{ struct TYPE { }; struct TYPE2 { }; %} // Overriding __new__ test: https://github.com/swig/swig/pull/1357 %inline %{ class Foo { public: virtual ~Foo() {} Foo() {} }; Foo* get_foo() {return new Foo();} %} %pythoncode %{ print_debug = False %} %extend Foo { // Note that %pythoncode is not available with -builtin %pythoncode %{ def __new__(cls, *args, **kwargs): if print_debug: print('in Foo.__new__()') return super(Foo, cls).__new__(cls) def __init__(self): if print_debug: print('in Foo.__init__()') %} };