2017-06-12 5 views
2

J'ai une classe personnalisée en python que je dois passer à une API externe. L'API nécessite seulement de pouvoir appeler bytes(...) sur ma classe.Python bytes (...) dans la classe personnalisée

Ma question est, comment puis-je décider du comportement d'appeler bytes() sur ma classe python personnalisée?

Répondre

7

Vous pouvez donner à votre classe personnalisée un __bytes__ method:

Appelé par bytes pour calculer une représentation chaîne d'octets d'un objet. Cela devrait retourner un objet bytes.

Démo:

>>> 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'