公式ドキュメントは言う:__bytes__メソッドはどこにありますか?
オブジェクトのバイト列 表現を計算するためにbytes
によって呼び出され
object.__bytes__(self)
。これにより、
bytes
オブジェクトが返されます。
しかし、私はdir(object)
またはdir(bytes)
またはdir(bytearray)
を行う際に、__bytes__
方法は表示されません。だからどこで見つかるの?
公式ドキュメントは言う:__bytes__メソッドはどこにありますか?
オブジェクトのバイト列 表現を計算するためにbytes
によって呼び出され
object.__bytes__(self)
。これにより、
bytes
オブジェクトが返されます。
しかし、私はdir(object)
またはdir(bytes)
またはdir(bytearray)
を行う際に、__bytes__
方法は表示されません。だからどこで見つかるの?
PEP 428のpathlib
(Python 3.4以降)は、bytes
の最も一般的な使用方法です。
>>>
>>> p = PurePath('/etc')
>>> str(p)
'/etc'
:
パスの文字列表現を使用すると、文字列としてファイルパスを取る任意の関数に渡すことができ、(Windowsでバックスラッシュを持つ天然の形態で、例えば)生のファイルシステムのパスそのものであります
os.fsencodeによってコード同様に、経路上のバイトを呼び出すと(、バイト・オブジェクトとして生のファイルシステムのパスを与える):
>>> >>> bytes(p) b'/etc'
これらの変換pathlib.__str__()
とpathlib.__bytes__()
という魔法の方法で起こります。
カスタムオブジェクトに対して' __bytes__'メソッドが定義されていれば、 'bytes'組み込み関数はバイト表現を返しますオブジェクトのこのメソッドは、組み込み型では使用できません。 – debashish
これは妥当ではありません: 'bytes'は*を*バイトに変換するメソッドなので、' bytes'自体にではなく、 'bytes'に変換するオブジェクトに追加されます。 –
追加されたオブジェクトの例を教えてもらえますか? – debashish
どのように: 'bytes([1,2,3])'。 [docs](https://docs.python.org/3.6/library/functions.html#func-bytes) – Gerrat