@ 目录 1.说明 2.代码 关于作者 1.说明 使用类的魔法方法__mro__ 可以查看他的父类调用顺序 还有调用父类的构造方法的时候,使用super调用,里面有C3算法支持,不会重复调用相同的祖先类 2.代码 class Parent(object): def __init__(self,name,*args,**kwargs): print("Parent的init开始调用") self.name = name print("Parent的init结束调用")…
@ 目录 1.说明 2.代码 关于作者 1.说明 args数据类型为元组 kwargs数据类型为字典 一般传入方法中使用遍历去得到值 这个传入参数的顺序没有特殊的要求 当你自定义的参数传完以后,写了名字的就给kwargs,没有名字的给args 2.代码 def test(*args,**kwargs): for i in args: print(i) for i in kwargs: print(kwargs[i]) if __name__ == '__main__': test(1,2,3,3…
Python高级语法中,由一个yield关键词生成的generator生成器,是精髓中的精髓.它虽然比装饰器.魔法方法更难懂,但是它强大到我们难以想象的地步:小到简单的for loop循环,大到代替多线程做服务器的高并发处理,都可以基于yield来实现. 理解yield:代替return的yield 简单来说,yield是代替return的另一种方案: return就像人只有一辈子,一个函数一旦return,它的生命就结束了 yield就像有"第二人生"."第三人生"…
@ 目录 1.为什么要掌握元类 2.正文 关于作者 1.为什么要掌握元类 在django中编写models的时候遇到了元类的相关操作 并且在mini-web框架编写的时候也遇到了相关的问题 意识到深入理解元类非常的重要所以补票重学 学习且引用来自博客:https://www.cnblogs.com/intimacy/p/8119449.html 2.正文 python中一切都是对象,类也是对象 那么意味着,类可以执行以下操作 1)将他赋值给一个变量 2)拷贝他 3)给他设置属性 4)将他当做方法…
1.新式类和经典类 在python2.2之前, 基类如果不写(), 则表示为经典类; 在python2.2之后, 经典类不复存在, 只存在新式类. 如果基类谁都不继承的话, 则默认继承object. 2.MRO----()方法解释顺序 主要用于多继承时判断属性的路径(来自于哪个类). 经典类的MRO算法  ------树形结构的深度优先遍历 原则: 按继承顺序从左子树到右子树, 一条道走到黑. class A: pass class B(A): pass class C(A): pass cla…
1.Python面向对象 创建类 使用class语句来创建一个新类,class之后为类的名称并以冒号结尾,如下实例: class ClassName: '类的帮助信息' #类文档字符串 class_suite #类体 实例: class Employee: '所有员工的基类' empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 def…
#coding:utf-8 #定义一个装饰器函数 def doc_func(func): #包裹函数(闭包) def warpfunc(): #做一些额外的事情 print "%s called" %(func.__name__) func() return warpfunc @doc_func def foo(): print "hello" @doc_func def bar(): print "nihao" if __name__== &q…
继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性:  实现 指的是一个class类实现interface接口(可以是多个)的功能:实现是类与接口之间最常见的关系:在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性…
理论:装饰器就是运行一个函数之前首先运行装饰器函数,python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能. 1.单个装饰器装饰一个函数:通用装饰器看下面代码 def verify(func): def call_fun(*args, **kwargs): print('权限验证1') return func(*args, **kwargs) return call_fun…
知识点: 一.什么是property属性? 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法,Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回. 二.property属性的有两种方式 : 装饰器 即:在方法上应用装饰器 类属性 即:在类中定义值为property对象的类属性 1.使用装饰器时经典类和新式类的区别: 经典类中:property属性只有装饰器@property这一个 新式类中:具有三种@property装饰器,…