python老男孩第四课
本节内容 反射之第二 装饰器 面向对象编程 异常处理 断言
反射之第二
- 通过import 导入 可以理解为导入文件夹 getattr 导入文件或函数
装饰器
def outt(func): def wapper(arg): print('你好') reslt=func(arg) print('登陆成功') return reslt return wapper @outt def funcc(arg): print('你名字是:%s'%arg) return 123 aa=funcc('牛牛') print(aa)
def fun(): print('函数1') def fun1(): print('函数2') def outr(fun,fun1): def out1(fun2): def wrapper(arg): fun() print('欢迎光临') reslt=fun2(arg) print('登录成功') fun1() return reslt return wrapper return out1 @outr(fun,fun1) def func(arg): print('你好,%s'%arg) return 999 dd =func('牛牛') print(dd)
面向对象编程
- 类定义 class 类名称: def __init__(self): 析构函数(必须存在) 析构函数中构建的是动态字段 或私有字段(名字前加‘__’),私有字段只有类中方法(函数)可以访问,外面对象不能直接访问私有字段
- 静态方法 属于类 @staticmethod 函数中参数不能加self
- 特性 @property 对象调用字段的形式调用函数
查看源码class Person: memo='类的字段' #静态字段 只属于类 def __init__(self,name,age): # 动态字段 只属于对象 self.name=name self.age=age def funcc(self): print('函数1%s'%self.name) @staticmethod #静态方法 函数后面不能跟self def funnc(): print('静态方法') @property #特性 函数用字段的形式调用 def bar(self): print('特性') p1=Person('牛牛',2) print(p1.name) p1.funcc() p1.bar Person.funnc()
- 私有方法 def __func(self): 私有方法 函数名前加'__’,私有方法只有内部方法才可以调用,外面对象不能直接调用