2017-06-12 5 views
2

私は外部APIに渡す必要があるPythonでカスタムクラスを持っています。 APIは自分のクラスでbytes(...)を呼び出すことができるだけである必要があります。カスタムクラスのPythonバイト(...)

私のカスタムPythonクラスでbytes()を呼び出す動作をどうやって決めることができますか?

答えて

7

あなたのカスタムクラスを与えることができ__bytes__ method:オブジェクトのバイト文字列表現を計算するためにbytesによって呼び出され

。これにより、bytesオブジェクトが返されます。

デモ:

>>> class Foo: 
...  def __bytes__(self): 
...   return b'This is a bytes result for this instance' 
... 
>>> bytes(Foo()) 
b'This is a bytes result for this instance' 
関連する問題