John Machin wrote:
>Duncan Booth wrote: > > >>John Machin wrote: >> >> >> >> >>>>So, my question is: does the Python API containe fonctions like >>>>'get_argc()' and 'get_argv()' ? >>>> >>>> >>>> >>>If you can't see them in the documentation, they aren't there. If they >>>aren't there, that's probably for a good reason -- no demand, no use >>>case. >>> >>> >>> >>> >>Leaving aside whether or not there is a use-case for this, the reason they >>aren't there is that they aren't needed. >> >> > >"no use-case" == "no need" in my book > > > >>As the OP was already told, to >>access argv, you simply import the 'sys' module and access sys.argv. >> >> > >Simple in Python, not in C. > > > >>There are apis both to import modules and to get an attribute of an >>existing Python object. >> >> > >I know that; my point was why should you do something tedious like that >when you shouldn't be interested in accessing sys.argv from a C >extension anyway. > > > >> So all you need is something like (untested): >> >>PyObject *sys = PyImport_ImportModule("sys"); >>PyObject *argv = PyObject_GetAttrString(sys, "argv"); >>int argc = PyObject_Length(argv); >>if (argc != -1) { >> ... use argc, argv ... >>} >>Py_DECREF(argv); >>Py_DECREF(sys); >> >> I understand all the good arguments explained before, and I am agree with them. Nevertheless, I implement Python bindings from a generic parallel framework and a new application based on this framework needs to call a kind of initilization class : the constructor arguments are argc and argv... Then, the previous solution can be a work around to test some behavours of my bindings. Thanks for your answers ;-) -- http://mail.python.org/mailman/listinfo/python-list