python笔记
qq_33266776
这个作者很懒,什么都没留下…
展开
-
方法
一、@函数修饰器def auth(fn):def auth_fn(*args):print(’=模拟权限检查=’)fn(*args)#回调被修饰目标函数return auth_fn@authdef test(a, b):print(‘执行test函数’)test(20, 15)执行流程是:①先执行权限检查;②回调被修饰的目标函数-一简单来说, auth_fn 函数就为被修饰函...原创 2019-09-09 11:30:09 · 82 阅读 · 0 评论 -
Python常见的特殊方法
一、重写__repr__方法(类的自我描述方法)当打印对象时,系统会根据__repr__方法输出对象的自我描述信息,用来告诉外界该对象具有的状态信息class Rectangle: def __init__(self, width, height): self.width = width self.height = height def __repr__(self): ret...原创 2019-09-23 15:59:41 · 268 阅读 · 0 评论 -
Python异常处理
一、异常处理机制1、Python通过try…except…else…finally…代码块的方式处理异常,当try代码块出现异常,则把该异常对象交给except处理,并且可以通过可选else代码块处理try无异常时的代码逻辑,通过可选的finally代码块回收资源。2、Python所有的异常类的基类都是BaseException,但是自定义异常类通常都是继承Exception类。3、Py...原创 2019-09-18 18:06:29 · 92 阅读 · 0 评论 -
Python的枚举类
一、枚举入门Python程序提供两种方式来定义枚举类1、直接使用Enum列举多个枚举值来创建枚举类;2、通过继承Enum基类来派生枚举类。例1:通过使用Enum列举多个枚举值来创建枚举四季类import enum#Enum第一个参数为类的名称,第二个参数为一个枚举值的元组Season = enum.Enum('Season', ('SPRING', 'SUMMER', 'FALL',...原创 2019-09-18 15:21:35 · 129 阅读 · 0 评论 -
Python的多态和类型检查
一、多态性python变量并没有声明类型,因此同一个变量完全可以在不同的时间引用不同的对象。当同一个变量在调用同一个方法时,完全可能呈现出多种行为,这就是所谓的多态。class Canvas: def draw_pic(self, shape): print('--开始绘图--') shape.draw(self)class Rectangle: def draw(self, ...原创 2019-09-18 14:19:13 · 124 阅读 · 0 评论 -
Python的动态性
一、动态属性与__slots__python对象可以动态的添加方法,但是这种添加的方法仅对当前对象有效,例如:class Cat(): def __init__(self, name): self.name = name def walk_fun(self): print('自定义方法,名字是%s' % self.name)c1 = Cat('aaa')c2 = Cat(...原创 2019-09-17 18:07:39 · 597 阅读 · 0 评论 -
python类的继承
一、类的继承语法:class SubClass(SuperClass1,SuperClass,...): passpython支持多继承且默认继承object类,多个父类拥有共同方法时,python调用继承顺序第一的父类方法,如下例:class Item():def info(self):print(‘Item的info方法’)class Product(): def info(...原创 2019-09-17 10:54:34 · 250 阅读 · 0 评论 -
类的隐藏与封装
封装是面向对象的三大特征之一, 它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。对一个类或对象实现良好的封装,可以达到以下目的:1、隐藏类的实现细节,即隐藏类中的变量、方法及具体实现等;2、只能通过事先预定的方法来访问,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问;3、可进行数据检查,从而有利于保证对...原创 2019-09-10 11:40:13 · 593 阅读 · 0 评论 -
使用property 函数定义类属性
1、调用property 也可传入0 个(既不能读,也不能写的属性)、l 个(只读属性)、2 个(读写属性、3个(读写属性,也可删除〉和4 个(读写属性,也可删除,包含文档说明〉参数。class Rectangle: #定义类属性 def __init__(self, width, height): self.width = width self.height = height ...原创 2019-09-09 17:23:10 · 260 阅读 · 1 评论 -
与反射相关的属性和方法
一、动态操作属性1、hasattr(obj, name):检查obj对象是否包含名为name的属性或方法;2、getattr(object, name[, default]):获取object对象中名为name的属性的属性值;3、setattr(obj, name, value, /):将obj 对象的name 属性设为value。class Rectangle: def __init_...原创 2019-09-23 17:32:10 · 130 阅读 · 0 评论