2017-08-26 8 views
1

は、私は次のPythonコードを持っています。このコードはのpython3で実行されdoctestの非表示ASCIIを含むバイト配列をどのように表現できますか?

def example(byte_array): 
    """ 
    Return the byte array. 
    >>> example(b'\x01') 
    b'\x01' 
    """ 
    return byte_array 

、doctestのが失敗します。出力は以下のとおりです。

********************************************************************** 
File "example.py", line 74, in __main__.example 
Failed example: 
    example(b'') 
Expected: 
    b'' 
Got: 
    b'\x01' 

期待される結果が間違っています。テストが合格するようにこれをどのように書くことができますか? example(b\'x01') is b'\x01'と一致するものをTrueとする必要がありますか、それとも良い解決策がありますか?

example(b'\0x2d')が代わりに使用された場合、おそらく0x2dという文字がダッシュ( " - ")であるため、テストが正しく実行され、端末に視覚的に印刷されることに注意してください。

答えて

0

文字列のバックスラッシュをエスケープします。

""" 
... 
b'\\x01' 
... 
""" 
+0

* winces *私はそれを試みました。ありがとう。印字不可能な文字はバックスラッシュをエスケープする必要はありませんが、印字可能な文字はエスケープしないようにする方法はありますか? – jmbeck

関連する問題