|
|
4.28 pyobject
The pyobject is a black box data type in SINGULAR
for handling objects from the programming language python. It
needs the python support of SINGULAR to be installed.
Together with some basic operations and functions, pyobject instances
access python functionality from within SINGULAR and store
the results for re-use:
Note that this feature is automatically loaded on demand when initializing
an object of type pyobject. For accessing pyobject-related
functions before using any python object, please type
LIB("pyobject.so"); at the SINGULAR prompt.
| | pyobject pystr = "Hello";
pyobject pyint = 2;
string singstr = string(pystr + " World!");
singstr;
==> 'Hello World!'
pystr + pyint; // Error: not possible
==> ? pyobject error occurred
==> ? cannot concatenate 'str' and 'int' objects
==> ? error occurred in or before ./examples/pyobject.sing line 5: `pystr \
+ pyint; // Error: not possible`
pystr * pyint; // But this is allowed,
==> 'HelloHello'
pystr * 3; // as well as this;
==> 'HelloHelloHello'
python_run("def newfunc(*args): return list(args)"); // syncs contexts!
newfunc(1, 2, 3); // newfunc also knowd to SINGULAR
==> [1, 2, 3]
def pylst = python_eval("[3, 7, 1]");
proc(attrib(pylst, "sort"))(); // Access python member routines as attributes
pylst.sort(); // <- equivalent short-notation
pylst."sort"(); // <- alternative short-notation
pylst;
==> [1, 3, 7]
python_import("os"); // Gets stuff from python module 'os'
name; // The identifier of the operating system
==> 'posix'
|
|