New submission from Xinmeng Xia <[email protected]>:
See the following examples, ctypes.resize is a built-in function and it's
hashable. ctypes.memset is a C function (CFunctionType object) and it's
“unhashable”. However, ctypes.resize and ctypes.memset are both immutable.
They should act the same in Python. It should not report unhashable type error
when ctypes.memset calls __hash__().
-----------------------------------------------
>>> import ctypes
>>> ctypes.resize
<built-in function resize>
>>> ctypes.resize.__hash__()
146309
>>> ctypes.memset
<CFunctionType object at 0x7fab55961400>
>>> ctypes.memset.__hash__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type
-----------------------------------------------
Python version: 3.9.2
system: Ubuntu
Expected output:
ctypes.memset is hashable.
----------
components: Interpreter Core
messages: 388804
nosy: xxm
priority: normal
severity: normal
status: open
title: CFunctionType object should be hashable in Python
type: compile error
versions: Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue43509>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com