On Mar 25, 9:22 pm, "Terry Reedy" <[EMAIL PROTECTED]> wrote: > "Alvin Delagon" <[EMAIL PROTECTED]> wrote in message > > news:[EMAIL PROTECTED] > | Hello, > | > | >>> hash("foobar") > | -1969371895 > | > | Anyone can explain to me how the hash() function in python does its work? > A > | link to its source could help me a lot also. I'm looking for a way to > | replicate this function in php. Thanks in advance. > > If not part of your installation, start with svn.python.org and click > browse. I would look for builtins.c or somesuch.
It's in stringobject.c: static long string_hash(PyStringObject *a) { register Py_ssize_t len; register unsigned char *p; register long x; if (a->ob_shash != -1) return a->ob_shash; len = Py_Size(a); p = (unsigned char *) a->ob_sval; x = *p << 7; while (--len >= 0) x = (1000003*x) ^ *p++; x ^= Py_Size(a); if (x == -1) x = -2; a->ob_shash = x; return x; } -- http://mail.python.org/mailman/listinfo/python-list