Martin v. Löwis added the comment:

Nick: I still disagree. Would you agree that array.array constitutes a 
"statically typed array"? Yet

py> array.array('b',b'foo') == array.array('B',b'foo')
True
py> array.array('i',[1,2,3]) == array.array('L', [1,2,3])
True

So the array object (rightfully) performs comparison on abstract values, not on 
memory representation. In Python, a statically typed array still conceptually 
contains abstract values, not memory blocks (this is also what Stefan asserts 
for NumPy in msg167862). The static typing only restricts the values you can 
store in the container, and defines the internal representation on the C level 
(plus it typically implies a value storage, instead of a reference storage).

With your and Stefan's proposed semantics, we would get the weird case that for 
two array.arrays a and b, it might happen that

a == b and memoryview(a) != memoryview(b)

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15573>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to