C#中默认的Python等价

时间:2011-06-20 18:21:44

标签: python python-2.7

python中有没有办法获取类型默认值?

//C#
default(typeof(int))

我正在寻找一种更加pythonic的方式来获取类型默认值?

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

显然我把它愚蠢了。我正在处理一些抽象的东西,当有人要求我没有的属性时,我基本上检查key->类型的映射并返回带有经典开关的默认实例。

2 个答案:

答案 0 :(得分:11)

只是实例化它:

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

更多细节:Python中没有明确的“默认值”概念。只有使用默认参数实例化的类的实例。在实例化它们时,某些类可能需要参数,在这种情况下,实际上并没有默认值。

答案 1 :(得分:3)

怎么样:

type(myObj)()

适用于int和dict。