2011-06-20 19 views
4

Pythonで型のデフォルト値を取得する方法はありますか?C#のデフォルトのPythonの同等性

//C# 
default(typeof(int)) 

私はタイプのデフォルトを取得するためにもっとpythonicな方法をお探しですか?

#python 
if(isinstance(myObj, int): 
    return 0 
elif(isinstance(myObj, dict): 
    return {} 
else: 
    return None 

明らかに私はそれを黙った。私はいくつかの抽象的なことを扱っています。誰かが持っていない属性を要求すると、基本的にkey-> typeのマッピングをチェックして、古典的なスイッチでデフォルトのインスタンスを返します。

+1

インスタンス化: 'int()'は0を返します。 –

答えて

11

ちょうどそれをインスタンス化:

int() # 0 
dict() # {} 
list() # [] 

もっと詳細を:Pythonで「デフォルト値」の明示的な概念がありません。デフォルトパラメータでインスタンス化されたクラスのインスタンスがあります。一部のクラスでは、インスタンス化する際に引数が必要になることがあります。この場合、デフォルト値は実際にはありません。これは、int型とdictのために働く

type(myObj)() 

:どの程度

+0

+1は恥ずかしいほど単純です。 – Nix