about the implement of the PyString_InternFromString
fredrik at pythonware.com
Thu May 4 14:26:35 CEST 2006
Kyo Guan wrote:
> I have a question about the this API.
> PyObject *
> PyString_InternFromString(const char *cp)
> PyObject *s = PyString_FromString(cp);
> if (s == NULL)
> return NULL;
> return s;
> Why it always try to call PyString_FromString first? if char* cp is already in the
> interned dict, this PyString_FromString call is waster. so I think this API should
> implement as:
> 1. check the interned dict
> 2. if cp is not in the dict, then call PyString_FromString, and insert the new string in
> the dict
> 3. else : call Py_INCREF and return.
> Is this right?
Python dictionaries contains Python objects, not C strings, and it's a bit difficult
to look for an object if you don't have it.
More information about the Python-list