L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
以 L –> E –> G –>B 的规则查找
只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域
全局变量和局部变量
try: f = open('myfile.txt') s = f.readline() i = int(s.strip())except OSError as err: //处理惩罚对应错误 print("OS error: {0}".format(err))except (TypeError,ValueError): //可以同时处理惩罚多个 print("Could not convert data to an integer.")except: //default错误 print("Unexpected error:", sys.exc_info()[0]) raiseelse: //放在最反面,没有发生任何错误时实行 print("NO Error")finally: //无论怎样都会实行的清算步伐 print("goodbye")抛出一个非常
raise NameError('msg')面向对象
定义类:
class Name: ....类对象
变量/方法 init方法:实例化时主动调用
类的方法与寻常的函数只有一个特殊的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self(可以自定义),代表类的实例。
class Test: def prt(self): print(self) print(self.__class__) t = Test()t.prt()继续:
class DerivedClassName(BaseClassName1): .... class DerivedClassName(moduleName.BaseClassName1):class DerivedClassName(BaseClassName1,BaseClassName2):若是父类中有雷同的方法名,而在子类使用时未指定,python从左至右搜刮 即方法在子类中未找到时,从左到右查找父类中是否包罗方法
子类可以重写父类的方法,super()方法用来调用父类的方法。
私有属性/私有方法:用__开头,只能在类内部调用
__privateattrs
def __privatemethod