⇤ ← Revision 1 as of 2002-09-26 01:25:52
913
Comment:
|
1043
Added a note how None can be created.
|
Deletions are marked like this. | Additions are marked like this. |
Line 19: | Line 19: |
object has a templated constructor which can be used to convert any C++ object to Python using the same underlying mechanisms used for the arguments to call<>. | |
Line 21: | Line 20: |
''object'' has a templated constructor which can be used to convert any C++ object to Python using the same underlying mechanisms used for the arguments to call<>. | |
Line 22: | Line 22: |
If an ''object'' instance is created without any arguments to the constructor then this instance holds the value {{{None}}}. |
The library provides a class called object, which encapsulates a valid Python object and provides a similar interface to Python's.
object operators
The first challenge was to provide support for object manipulations using a Python-like syntax, mostly in the form of operator overloads:
Python |
C++ |
y = x.foo |
y = x.attr("foo"); |
x.foo = 1 |
x.attr("foo") = 1; |
y = x[z] |
y = x[z]; |
x[z] = 1 |
x[z] = 1; |
y = x[3:-1] |
y = x.slice(3,-1); |
y = x[3:] |
y = x.slice(3,_); |
y = x[:-2] |
y = x.slice(_,-2); |
z = x(1, y) |
z = x(1, y); |
z = x.f(1, y) |
z = x.attr("f")(1, y); |
not x |
!x |
x and y |
x and y |
object conversions
object has a templated constructor which can be used to convert any C++ object to Python using the same underlying mechanisms used for the arguments to call<>.
If an object instance is created without any arguments to the constructor then this instance holds the value None.