  | ### 4.28.4 pyobject related functions `attrib` list, get and set attributes (class members) of a pyobject (see attrib) Example:
        pyobject pystr = "Kublai Khan";

        // Additional functionality through attrib
        attrib(pystr, "__doc__");
      ==> "str(object='') -> string\n\nReturn a nice string representation of the o\
         bject.\nIf the argument is a string, the return value is the same object.\
         "
        proc(attrib(pystr, "count"))("K");
      ==> 2

        pystr."__doc__";           // <- Short notations
      ==> "str(object='') -> string\n\nReturn a nice string representation of the o\
         bject.\nIf the argument is a string, the return value is the same object.\
         "
        pystr.count("a");          // Even shorter (if attribute's name is valid and unused)
      ==> 2

        python_run("def func(): return 17");
        attrib(func);
      ==> ['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__d\
         elattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribut\
         e__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '_\
         _new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__siz\
         eof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func\
         _defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']
        attrib(func, "func_name");
      ==> 'func'
        attrib(func, "func_name", "byAnyOtherName");
        attrib(func, "func_name");
      ==> 'byAnyOtherName'
  `killattrib` deletes an attribute from a pyobject (see killattrib) Example:
      LIB("pyobject.so");
      python_run("def new_pyobj(): pass");
      attrib(new_pyobj, "new_attr", "something");
      attrib(new_pyobj, "new_attr");
      ==> 'something'
      attrib(new_pyobj);
      ==> ['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__d\
         elattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribut\
         e__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '_\
         _new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__siz\
         eof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func\
         _defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name', 'new_at\
         tr']

      killattrib(new_pyobj, "new_attr");
      attrib(new_pyobj);
      ==> ['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__d\
         elattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribut\
         e__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '_\
         _new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__siz\
         eof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func\
         _defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']
> `python_run` execute string-given `python` commands and import new symbols from `python` to SINGULAR's context (see python_run). `python_eval` evaluate a string-given `python` expression and return the result to SINGULAR (see python_eval). `python_import` import `python` module into SINGULAR's context (see python_import)
> 4.28.5 python_eval |  |
> 4.28.6 python_import |  |
> 4.28.7 python_run |  |

User manual for Singular version 4.4.0, 2024, generated by texi2html.