二十三. Python基础(23)--经典类和新式类 ●知识框架   ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object):     def method1(self):         raise NotImplementedError   class Child(Parent):     def method2(self):         print('method2')   c=Child() c.method1() ''' .…
7.2 继承与派生 7.21继承 1.什么是继承? 继承是一种新建类的的方式,在python中支持一个子类继承多个父类.新建的类称为子类或者派生类,父类又可以称为基类或者超类,子类会”遗传“父类的属性. 2.为什么要用继承 减少代码冗余 class ParentClass1: pass class ParentClass2: pass class Subclass1(ParentClass1): pass class Subclass2(ParentClass1,ParentClass2): p…
经典类VS新式类区别 1)写法新式类class Person(object):#new style 经典类class Persion: #classical style 2)调用父类 新式写法用super 经典类直接写父类类名 3)多继承时继承顺序python3使用的是广度查询,所以两个都一样. 经典类python2是深度查询.所以经典类python2多继承是有BUG class D(B,C) D-->B-->A--C # -*- coding:utf-8 -*- __author__ = '…
首先了解一下什么是经典类,什么是新式类 class Person: #经典类 pass class Person2(object): #新式类 pass #类名首字母都大写 #在python3里面经典类和新式类没有任何区别 经典类与新式类在python3中是没有任何区别的,主要区别是在python2中多继承的时候.区别: 经典类是:深度优先 新式类是:广度优先在python3里面都是广度优先下面我们举例子来说明: class A: #这样定义A是经典类 def x(self): print('A…
一.上节补充1.静态属性静态属性 : 类的属性,所有的对象共享这个变量 如果用对象名去修改类的静态属性:在对象的空间中又创建了一个属性,而不能修改类中属性的值 操作静态属性应该用类名来操作 例1:请你写一个类,能够统计一共实例化了多少个对象? class Foo: count = 0 def __init__(self): Foo.count += 1 f1 = Foo() f2 = Foo() f3 = Foo() f4 = Foo() f5 = Foo() 结论:当类中的属性发生改变的时候,…
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 注意点: self ,我们讲过了,self = 对象,实例化后的对象调用类的各种成员的时候的self就是这个对象. 而且我们也讲过了…
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性:     #类.属性: 调用的就是类中的属性     #对象.属性: 先从自己的内存空间里找名字, 找到了用自己的, 没找到用类的, 如果类中也没有,就报错 #对于类的动态属性(方法):     # 这个方法本身就存在类中,并不会存在对象的内存中     # 如果要通过对象调用类中的方法, 这依赖于 去对象中的一个地址簿去类中寻找对应的方法 #对于对象的属性:     # 对象的属性就存在对…
二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数) # 这个参数传给__init__方法 类的的定义 : class关键字 类名(首字母大写)   2 ● 面相对象方法在什么时候用? 需要反复传递相同的参数给一些函数的时候 例如一个长方形的长/宽作为参数反复传递给计算面积/周长/对角线的函数   3 ● 属性 ① 类中的属性:     #静态属性…
十三. Python基础(13)--生成器进阶 1 ● send()方法 generator.send(value) Resumes the execution, and "sends" a argument which becomes the result of the current yield expression in the generator function.   The send() method, like __next__(), returns the next v…
继承知识点补充 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类. 一.多继承 之前我们都是讲的单继承,那么什么是多继承呢?说白了,就是:子类可以继承多个父类,就叫多继承. class SchoolMember(object): #SchoolMember类 '''学校成员基类''' def tell(self): print("the schoolmeber is tell...") class School(ob…
#!/usr/bin/env python# -*- coding:utf-8 -*-# 作者:Presley# 邮箱:1209989516@qq.com# 时间:2018-10-21# 新式类和经典类 class A: n = "A" def f2(self): print("from A") class B(A): n = "B" def f1(self): print("from B") # def f2(self):…
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商.2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容.我们的优势:1. 提供国家.省.市.县.运营商全方位信息,信息维度广,格式规范.2. 提供完善的统计分析报表,省准确度超过99.8%,市准确度超…
1. 面向过程与面向对象的优劣 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象(上帝式思维),要理解对象为…
要知道经典类和新式类的区别,首先要掌握类的继承.类的继承的一个优点就是减少代码,而且使代码看起来结构很完整. 那什么是经典类,什么是新式类呢? 经典类和新式类的主要区别就是类的继承的方式 ,经典类遵循深度优先的规则,新式类遵循广度优先的规则.至于什么是深度优先什么是广度优先,可以看如下示例: # Author:Zhang Zhao class A(object): def __init__(self): print('A') class B(A): pass # def __init__(sel…
经典类多继承的调用方法顺序是:深度优先查询,如下图:   新式类多继承的调用方法顺序是:广度优先查询,如下图:   可以使用下面的代码进行实验验证: #经典类class A: def __init__(self): self.n = "A" class B(A): def __init__(self): self.n = "B" class C(A): def __init__(self): self.n = "C" class D(B, C):…
一. 经典类与新式类的继承顺序 1 class A: def __init__(self): print("A") class B(A): def __init__(self): print("B") class C(A): def __init__(self): print("C") class D(B,C): pass obj = D() 注:python2.x 经典类是按深度优先来继承的,新式类是按广度优先来继承的: python3.x …
在Python中,经典类(class Person:)和新式类(class Person(object):)的主要区别就是体现在多继承的顺序上. Python 2.x中默认都是经典类,只有显式继承了object才是新式类:Python 3.x中默认都是新式类,不必显式地继承object. 假设现在有一个D类继承了B类和C类,B类和C类又分别继承了A类. 在Python2.7中分别执行如下经典类代码: # Author:Zheng Na # encoding=utf-8 #当D类中有构造函数时,实…
经典类和新式类区别 Eg: class A(object):    def x(self):        print('A')class B(A):    def x(self):        print('B')    # passclass C(A):    def x(self):        print('C') class D(B,C):    passs = D()s.x() Python3里面没有区别 经典类和新式类没区别,都是广度优先 Python2 里面: 多继承时: 经…
  阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现象 十 什么是粘包 十一 解决粘包的low比处理方法 十二 峰哥解决粘包的方法 十三 认证客户端的链接合法性 十四 socketserver实现并发 十五 作业 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端…
面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux内核.git.apache服务器等 优点:极大的降低了程序的设计复杂度 缺点:可扩展性差,改动一个地方很可能要改多个地方,牵一发而动全身 面向对象编程:不是编程的全部,只是用来解决软件可扩展性的 核心是对象(上帝式思维),对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.面向对象就是把计算…
用命令创建自动爬虫文件 创建爬虫文件是根据scrapy的母版来创建爬虫文件的 scrapy genspider -l  查看scrapy创建爬虫文件可用的母版 Available templates:母版说明 basic     创建基础爬虫文件 crawl    创建自动爬虫文件 csvfeed      创建爬取csv数据爬虫文件 xmlfeed  创建爬取xml数据爬虫文件 创建一个基础母版爬虫,其他同理 scrapy genspider  -t  母版名称  爬虫文件名称  要爬取的域名…
新式类:class Myclass(object): pass 经典类:class Myclass: pass 新式类里面加了一些新方法,例如重写父类: class A(object): def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex class B(A): def __init__(self,name,age,sex,job): super(B,self).__init__(name…
最近的类看着很疼,坚持就是胜利~~~ python中的类,什么是类?类是由属性和方法组成的.类中可能有很多属性,以及方法. 我们这样定义一个类: 前面是class关键字 后面school是一个类的名字,在后面就是圆括号和括号里面的object关键字,它是跟类,所有的类继承它.最后记住冒号结尾. class school (object): # object就是根类,在python3中要这样写的固有格式吧,不在深入研究它 创建好类后,类的内部代码块,会有类的属性和类的方法,因为类是由类的属性和方法…
最近生病了,python更新要结束了,但是这才是真正的开始.因为后面要更新的是UnitTest单元测试框架,以及后续的Requests库.在后续的笔记会补充一些python的其他细节笔记.我想是这样的hhh,开始更新. 接着前面的笔记开始,子类继承父类中的方法,目的是减少代码的重写.我们看下代码: class fruit(object): #定义一个类:水果类 def eat(self): return '好吃的水果' class apple(fruit): #定义一个苹果类,继承fruit()…
昨天简单的认识类怎么定义,什么是类,类如何调用.今天的笔记会大概补充一些内容,明天的笔记会细致讲解,加深个印象即可 今天我们在了解下:类的属性,类属性属于类也属于实例化对象.也就是说类的实例化对象可以调用类属性,同样的类也可以调用.看下代码: class person(object): #定义person()类 gongtong = '吃饭' #类属性 def __init__(self): #构造函数 pass #实例化一个对象 per_1 = person() print(per_1.gon…
Python入门 一.第一句Python 在 /home/dev/ 目录下创建 hello.py 文件,内容如下: print "hello,world" 执行 hello.py 文件,即: python /home/dev/hello.py python内部执行过程如下: python文件的后缀名可以是任意的,但是当需要导入模块时候,如果不是 .py结尾的文件,会报错,所以以后都写成 .py 结尾的文件就好了 二.解释器 上一步中执行 python /home/dev/hello.p…
基础 1.文件后缀名: 后缀名必须是.py,否则导入模块时会出错 2.执行方式: python解释器 .py文件路径 python 进入解释器 实时输入并获取执行结果 3.解释器路径 #!/usr/bin/env python →即文件头部的声明 在windows系统直接写: 在Linux系统中: 文件名:./2.py 文件内部:#!/usr/bin/env python 4.编码 # -*- coding:utf8 -*- 在Python2中如果程序包含中文则必须添加,在Python3 中无意…
类中可以有方法,类外也可以有函数,其实类就是一种封装, Python中可以自己定义一个函数,一可以把这个函数在类中封装成一个方法, 其中的属性和方法自然就从父类中继承来了, 要想获得多个类的属性和功能,Python中可以使用接口 #karl doenitz #coding=utf-8 def speak(sentense): print sentense speak("I love Lee") class People:#创建一个人类 sentense = "Hello Wo…
一.进程 1.什么是进程? 1.1 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成. 1.2 程序是指进程需要完成那些功能以及如何完成. 1.3 数据集是指程序在执行过程中所需要使用的资源. 1.4进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用他来控制和管理进程,他是系统感知进程存在的唯 一标识 二.线程 1.为什么会有线程? 1.1线程是为了降低上下文切换的消耗,提高系统的并发性,突破一个进程只能干一件事的局限. 2.什么…
1.变量名 数字,字母,下划线:aaa1;aa_b1 不能以数字开头:1aa 变量名不能是python内部的关键字 2.getpass import getpass username=raw_input('username:') passwd=getpass.getpass('password:') #使得密码不可见 3.基本if条件语句 if 条件: 内容 else: 内容 ------------------------------------------------------------…