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;
> PyString_InternInPlace(&s);
> 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.
</F>
--
http://mail.python.org/mailman/listinfo/python-list