rahul <rahul03...@gmail.com> writes: > Hi, > i need to write a 'c extension function' in this function i need to > change argument value with which this function called. > ie, > if a python code like > import changeValue as c > arg="old value" > c.changeValue(arg) > print arg > > then it print "new value" > > i write code like this.. > > static PyObject *changeValue(PyObject *self,PyObject *args){ > PyObject *sampleObj, *m ; > char *argName; > > if (!PyArg_ParseTuple(args, "O", &sampleObj)){ > return NULL; > } > > m = PyImport_AddModule("__main__"); > PyObject_SetAttrString(m, argName, "new value"); > return Py_BuildValue(""); > } > > But for this i need to know the argument name with which this function > called . > Is this possible to know argument name in extended c function? if yes, > than how i can do it???
No, you can't and it's a good thing, because when reading your code you can find out very easily when a variable has been rebound: it's on those lines of the form name = expression Instead, make your 'changeValue" function return the new value, then write: import changeValue as c arg = "old value" arg = c.changeValue(arg) print arg It'll work, with the added benefit that it'll be clearer that arg was changed. -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list