M5StackでBLE通信をしようとMicroPythonを書いてたところ気付いたのでメモ。
str型みたいにインデックスアクセスすると、長さ1のbytesが返ってくると思ったらintが返ってきた。
text = "Hello" data = text.encode() print(type(text)) # 当然str print(type(data)) # もちろんbytes print(type(text[0])) # <class 'str'> print(type(data[0])) # <class 'int'>
そういえばPythonは多倍長整数でもint型になるし、整数->int、浮動小数点数->floatという区別しかないので、1バイトがintになってもいいかと思った。 (とはいえ1バイトでも多倍長整数でも同じ型になるのは内部でどう扱ってるんだろう)