2016-04-22 2 views

答えて

6

type関数が文字列を返さないためです。これは、型「タイプ」を返します:

>>> type(type('hi')) 
<type 'type'> 

だからあなたは、現時点ではやっていることは、結果Falseを持つことになりますタイプ「文字列」にタイプ「タイプ」を比較しています。

私はisinstanceを使用することをお勧め:

>>> isinstance('hi', str) 
True 
1

混乱がシェルによって誘導することができます。タイプ名を表示するタイプのものもあれば、そのタイプの表現を表示するタイプもあります。ここ

  • Pythonシェル

    >>>type('jj') 
    <class 'str'> 
    
  • Ipython

    In [68]: type('a') 
    Out[68]: str 
    

は、2つの文字列が使用される例示として

In [69]: str.__name__ 
Out[69]: 'str' 

In [70]: repr(str) 
Out[70]: "<class 'str'>" 

上記のように、isinstanceはタイプをテストするのに適しています。

+0

オブジェクトのタイプとその結果を取得するさまざまな方法の良い説明!しかし、私は "シェル"に混乱しています。また、Pythonでこれを試してみましょうか、IPythonではありません。 –

関連する問題