#这只是一个简要的个人回顾,慎看
作用域和命名空间:命名空间(命名-对象の映射)
built-in-names:内置-函数、变量、类型etc【解释器启动-解释器关闭】模块中的函数,变量,类【module imported-一般是解释器退出】
类中的成员变量,成员函数【类定义-】
方法中的变量【方法被调用-方法返回/遇到未被处理的异常】
作用域:从内向外搜索,知道最外层的内置命名空间
global的用法:在内层作用域中 global x就可以直接使用模块命名空间的x变量了,该作用域中所有
对x的操作就是对全局x的操作,改变x将直接改变模块中的x
类:【python中一切皆对象,类也是对象】
定义类 class ClassName
类操作:属性引用和实例化
特殊方法__init__(self,arg)
类变量和实例变量:后者对每个实例都是唯一的,前者是用于所有实例共享的属性和变量
(这时针对可变对象要谨慎使用)
继承:class DerivedClassName(BaseClassName)
isinstance() issubclass()
多继承class DerivedClassName(Base1,Base2,Base3)在属性搜索时是深度优先规则,即在子类搜索
不到的属性,先去Base1及其所有base类中搜索,这比广度优先更合理--深度优先规则使Base1的直接
属性和继承的属性之间没有差别
私有变量和类本地引用:类中不存在“只能从对象内部访问的”私有变量。
异常也是类:except时,若捕捉到的是该异常类的子类,则之间进该except,若是该类的基类,则
继续往下except。
迭代器:大多数容器对象都可以用for遍历,这实际上是for语句在容器对象中调用iter(),iter()返
回了一个定义了next()方法的迭代器对象,再不断调用next()方法。