2016-11-17 5 views
1

次typescriptです考えてみましょう:strbytes両方どのようs来ているPythonのstrとバイトの関係はどうですか?

>>> s = 'a' 
>>> isinstance(s, bytes) 
True 
>>> isinstance(s, str) 
True 
>>> isinstance(s, unicode) 
False 
>>> isinstance(s.decode('utf-8'), unicode) 
True 

を?それらのうちの1つは他のものの子孫ですか?

どのように私はそれに遭遇しましたか?私はdecodeメソッドの説明をドキュメントで見つけようとしていました。私はstrのためにそれを見つけることができませんでしたが、bytesのためにできました。

+0

>>> isinstance(s、bytes)False' python 3 – user2728397

+1

Python 2.xタグが追加されました。これはPython 2の場合と同様です。また、 'bytes == str'は' True' Python 2.7で –

+0

確かに。私は主にPython 3を扱っているので、私は本質的にその部分を調べました。 –

答えて

4

誤ったドキュメントを参照しています。

この等価性は、Python 2.7でのみ当てはまります。そこでは、bytesはPython 3ではPythonの3

への移行を容易にするためにstrに別名として導入されました、strbytesが以前strと呼ばれたタイプで、以前unicodeと呼ばれていたものです。

str.decodeのPython 2のドキュメントはhereです。

関連する問題