# Feature or enhancement ### Proposal: I'd like to add a quick way to maybe get a `str` hash, so that advanced users don't need to reach into the undocumented-but-public `PyASCIIObject->hash`. ```c Py_hash_t PyUnstable_Unicode_GET_CACHED_HASH(PyObject *str) ``` If the hash of *str*, as returned by `PyObject_Hash`, has been cached and is immediately available, return it. Otherwise, return ``-1`` *without* setting an exception. If *str* is not a string (that is, if `PyUnicode_Check(obj)` is false), the behavior is undefined. This function never fails with an exception. Note that there are no guarantees on when a object's hash is cached, and the (non-)existence of a cached hash does not imply that the string has any other properties. ### Has this already been discussed elsewhere? I have already discussed this feature proposal on Discourse ### Links to previous discussion of this feature: https://discuss.python.org/t/82543 <!-- gh-linked-prs --> ### Linked PRs * gh-134892 <!-- /gh-linked-prs -->