[issue32003] multiprocessing.Array("b", 1), multiprocessing.Array("c", 1 ) wrong value returned
Samuel Nwokenkwo
report at bugs.python.org
Sat Nov 11 00:16:04 EST 2017
Samuel Nwokenkwo <snwokenk at terpmail.umd.edu> added the comment:
I completely wrote the wrong code:
So I'll copy and paste:
--------------------
Scenario 1
import multiprocessing
br = multiprocessing.Array('c', 1)
br[0] = 's'
print(br[:])
Scenario 1 result = "TypeError: one character bytes, bytearray or integer expected"
-------------------------
Scenario 2
import multiprocessing
br = multiprocessing.Array('b', 1)
br[0] = 's'.encode()
print(br[:])
Scenario 2 results = "TypeError: an integer is required (got type bytes)"
-----------------------------------
I believe my confusion is that I am thinking more of the python data type byte, which takes b'', than C language data type byte (which takes numbers from -127 to 128. This confusion is compounded when I do something like scenario 3:
-------------------------------
import multiprocessing
br = multiprocessing.Array('c', 1)
br[0] = 's'.encode()
print(br[:])
scenario 3 results: b's'
------------------
In the first scenario passing 's' i get an error, even though by definition 's' is a c char data type.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32003>
_______________________________________
More information about the Python-bugs-list
mailing list