牛客网 python
python浅拷贝,深拷贝
py2 and py3的区别
解释型语言非独立(依赖执行环境)、效率低
协程完全由用户控制
a > 'b' or 'c' 返回'c'
复数不可以用不等号判断大小
python2下(3, 2) < ('a', 'b') 返回True,但在py3下是错的
(位置参数、默认参数、*args) 不同于 (位置参数、*args、默认参数)
**kwargs表示形参中按照关键字传值把多余的传值以字典的方式呈现。
(位置参数、*args、**kwargs)顺序不能变
a = '123'; b = '123' a is b ? true
xrange返回一个生成器。0的任何次方均为1
Python 中的 new 方法负责创建一个实例对象,init 方法负责将该实例对象进行初始化
简言之,new作用于init之前。前者可以决定是否调用后者,或者说可以决定调用哪个类的init方法
__new__是一个静态方法,而__init__是一个实例方法__new__方法会返回一个创建的实例,而__init__什么都不返回只有在__new__返回一个cls的实例时,后面的__init__才能被调用 ```当创建一个新实例时调用__new__,初始化一个实例时用__init__python中主要存在四种命名方式:
1、object #公用方法
2、_object #半保护
#被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量,
在模块或类外不可以使用,不能用’from module import *’导入。
#__object 是为了避免与子类的方法名称冲突, 对于该标识符描述的方法,父
类的方法不能轻易地被子类的方法覆盖,他们的名字实际上是
_classname__methodname。
3、_ _ object #全私有,全保护
#私有成员“private”,意思是只有类对象自己能访问,连子类对象也不能访
问到这个数据,不能用’from module import *’导入。
4、_ _ object_ _ #内建方法,用户不要这样定义