Python3-类型的默认值的默认关键字?
Python3是否有类似于.NET的功能?也就是说,给定一个类型,它会生成该类型的值,该值通常被称为该类型的默认值。例如:Python3-类型的默认值的默认关键字?,python,python-3.x,Python,Python 3.x,Python3是否有类似于.NET的功能?也就是说,给定一个类型,它会生成该类型的值,该值通常被称为该类型的默认值。例如: 默认值(int)为0 默认值(十进制)为0.0 默认值(MyCustomClassType)为null 我希望这样的事情已经存在,因为我希望预处理pandas数据帧中的值,并用0替换整数列中的NaN等,并且避免编写我自己的函数(为每种可能的类型都包含一个巨大的开关,以模仿我前面在.NET中演示的行为) 任何指点都将不胜感激。多谢各位 如注释中所述,Python类型,如int
默认值(int)
为0
默认值(十进制)
为0.0
默认值(MyCustomClassType)
为null
我希望这样的事情已经存在,因为我希望预处理pandas数据帧中的值,并用0替换整数列中的NaN等,并且避免编写我自己的函数(为每种可能的类型都包含一个巨大的开关,以模仿我前面在.NET中演示的行为)
任何指点都将不胜感激。多谢各位 如注释中所述,Python类型,如
int
,float
,str
,list
等都是可调用的,即,您可以使用int()
获取0
,或者str()
和list()
获取空字符串或列表
>>> type(42)()
0
这同样适用于numpy
类型。您可以使用dtype
属性获取numpy数组的类型,然后使用该属性初始化“缺失”值:
这也适用于提供无参数构造函数的其他类,但是,结果将是该类的一个实例,而不是您的示例中的null
>>> class Foo(object): pass
>>> type(Foo())()
<__main__.Foo at 0x7f8b124c00d0>
>>类Foo(对象):传递
>>>类型(Foo())()
int()
默认返回0
,而float()
默认返回0.0
。这有用吗?@idjaw,x=something或int()
不能满足同样的需求吗?太好了,正是我想要的,谢谢。
>>> class Foo(object): pass
>>> type(Foo())()
<__main__.Foo at 0x7f8b124c00d0>