unicode(somestring, 'utf8')
ではなくsomestring.decode('utf8')
を好む理由はありますか?
私の唯一の考えは、.decode()
はバインドされたメソッドであるため、pythonはより効率的に解決できる可能性がありますが、間違っている場合は修正してください。
ベンチマークは簡単です。
_>>> from timeit import Timer
>>> ts = Timer("s.decode('utf-8')", "s = 'ééé'")
>>> ts.timeit()
8.9185450077056885
>>> tu = Timer("unicode(s, 'utf-8')", "s = 'ééé'")
>>> tu.timeit()
2.7656929492950439
>>>
_
明らかに、unicode()
の方が高速です。
FWIW、メソッドが速くなるという印象をどこで得るかはわかりません-それはまったく逆です。
unicode
タイプはPython 3.0には存在しませんが、'something'.decode(...)
はまだ有効であるため、text = b'binarydata'.decode(encoding)
をお勧めします。