python为什么不支持函数重载?
其他语言里的函数重载,需要相同的函数名加不同的参数(要么参数的数量不同,要么参数的类型不同)。但是在python里参数是不区分类型的,所以根据类型不同是行不通了。如果在同一个模块里有两个函数名相同,参数数量不同的函数,最后一个函数会覆盖前一个函数。因为函数的定义本质是创建一个函数对象,然后赋值给一个变量名。
python里类的私有变量?
python中类的私有变量有两种形式: _x和__x。单下划线开头的是一种不正式的约定,双下划线开头的会有一个重命名操作: _class__x。python设计该功能的主要目的是为了防止命名冲突,而不是为了控制访问。
python中有几种可调用的对象?
四种: 简单函数(def 或 lambda),继承__call__的实例,绑定方法