2016-06-24 4 views
0

私はすべてをPython 3.5の文字列に変換できるかどうか疑問に思っています。Pythonに文字列に変換できない型はありますか?

たとえば、これでエラーが発生しますか?

def test(arg): 
    try: 
     arg=str(arg) 
    except ValueError: 
+3

あなたはエラーをスローします(または文字列を返すことに失敗したカスタムクラスを書くことができます)と '__repr__'と' __str__'の一方または両方で、しかし確かに標準ライブラリの中のすべてと他のものの圧倒的多数は文字列化されます(少なくとも '<... object at 0x ...>' 、もし何かもっと役に立たないなら)。 – jonrsharpe

+0

すべての型は、Pythonでstrを使ってStringに変換できます。 – Destrif

答えて

3

標準ライブラリ内のすべての種類は、STR()関数を使用してPythonで文字列に変換することができますが、Pythonではすべてのオブジェクトは、標準ライブラリにする必要がありません。

理論的にはこれが(私たちは、文字列を返さないものに、ここでデフォルト__str__メソッドをオーバーライドすると)、エラーがスローされます。

class O: 
    def __str__(self): 
     pass 

o = O() 
print(str(o)) 
// TypeError: __str__ returned non-string (type NoneType) 
関連する問題