上节课复习:1.编程思想    面向过程        核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么后干什么        基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式        优点:复杂的问题流程化,进而简单化        缺点:可扩展性差 面向对象        核心是对象二字,对象是特征(变量)与技能(函数)的结合体        基于该思想编写程序就好比在创造一个世界,世界是由一个个对象组成的,在上帝眼里所有存在的事物都是对象,任何不存在的事物…
一.组合 自定义类的对象作为另一个类的属性. class Teacher: def __init__(self,name,age): self.name = name self.age = age t1 = Teacher('Bob',20) print(type(t1.name), type(t1.age)) class Student: # 学生可以有 老师 属性 def __init__(self, name, age, teacher): self.name = name self.ag…
十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, OrderedDict time模块: 三种时间表示方法的转换 案例: 计算时间差 random模块: ① random.random() ② random.randint(1,5) ③ random.choice([1,'23',[4,5]]) ④ random.sample([1,'23',[4…
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass print(issubcla…
一.面向过程程序设计与面向对象程序设计 面向过程的程序设计:核心是过程,过程就解决问题的步骤,基于该思想设计程序就像是在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题的简单化,流程化 缺点:扩展性差 面向对象的程序设计:核心是对象,对象是特征(变量)与技能(函数)的结合体,是一种上帝式的思维方式 优点:解决了程序的扩展性 缺点:可控性差 二.类和对象 以游戏举例,基于面向对象设计一个款游戏:英雄联盟,每个玩家选一个英雄,每个英雄都有自己的特征和和技能,特征即数据属性,技能即方法属性,特…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/signjing/article/details/30745465 抽象 懒惰即美德. 抽象和结构 抽象能够节省大量工作,实际上它的作用还要更大.它是使得计算机程序能够让人读懂的关键. 创建函数 函数能够调用(可能包含參数,也就是放在圆括号里的值),它运行某种行为而且返回一个值.一般来说,内建的callable函数能够用来推断函数是否可调用: >>> import math >>…
一.抽象类 抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 1.在python中实现抽象类 import abc #利用abc模块实现抽象类 class All_file(metaclass=abc.ABCMeta): all_type='file' @abc.abstractmethod #定义抽象方法,无需实现功能 def read(self): '子类必须定义读功能' pass @abc.abstractmethod #定义抽象方法,无需实现功能 def write(sel…
多态 1.什么是多态? 多态指的是同一种类型的事物,不同的形态. 2.多态的目的: “多态” 也称之为 “多态性”,目的是为了 在不知道对象具体类型的情况下,统一对象调用方法的规范(比如:名字). 多态的表现 “形式之一” 就是继承: - 先抽象,再继承 父类: 定制一套统一的规范.(比如: 方法名统一) 子类: 遵循父类的统一的规范.(比如: 子类遵循父类方法名的统一) 注意: 在python中不会强制限制 子类 必须要遵循 父类 的规范,所以出现了抽象类. # 动物类 class Anima…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/signjing/article/details/36029981 标准库:一些最爱 shelve Shelve唯一有趣的函数是open. 在调用它的时候(使用文件名称作为參数),它会返回一个Shelf对象,能够用它来存储内容. 仅仅须要把它当作普通的字典(可是键一定要作为字符串)来操作就可以,在完毕工作之后,调用它的close方法.   意识到shelve.open函数返回的对象并非普通的映射是非…
面向对象编程 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法. 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据.状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用. 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义…
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 注意点: self ,我们讲过了,self = 对象,实例化后的对象调用类的各种成员的时候的self就是这个对象. 而且我们也讲过了…
标准库:一些最爱 re re模块包括对正則表達式的支持,由于以前系统学习过正則表達式,所以基础内容略过,直接看python对于正則表達式的支持. 正則表達式的学习,见<Mastering Regular Expressions>(精通正則表達式) re模块的内容 最重要的一些函数 函数 描写叙述 compile(pattern[,flags]) 依据包括正則表達式的字符串创建模式对象 search(pattern,string[,flags]) 在字符串中寻找模式 match(pattern,…
目录 6.1 面向对象方法 duck typing 访问限制 __ 6.2 自定义类 6.2.1 属性与方法 预定义的特殊方法 __...__ 一般的方法名起始和结尾不应该使用俩个下划线,除非是预定义的特殊方法(大概就是操作符所对应的方法,还有一些固定的方法?). 6.2.2 继承与多态 6.2.3 使用特性进行属性存取控制 @property 6.2.4 创建完全整合的数据类型 6.3 自定义组合类 6.3.1 创建聚集组合数据的类 6.3.2 使用聚集创建组合类 SortedList 6.3…
面向对象 1.初识类: # 定义一个函数,我们使用关键字 def """ def 函数名(参数): '''函数说明''' 函数体 return 返回值 """ def func(): print("func execute...") # 定义一个类 使用关键字 class """ class 类名: '''类说明''' 类体 """ class C: pass cla…
一.名称空间 名称空间有内置名称空间,全局名称空间,局部名称空间.它是用来存放名字与值对应关系的地方. test.py文件: num = 10 def fn(): print("fn run") def func(): a = 10 print(locals()) # 以字典类型返回当前位置的全部局部变量{'a': 10} func() print(func.__dict__) # {} a = 10 # print(a.__dict__) # 'int' object has no…
一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继承: 重用性:减少代码的重复,子类可以复用父类的方法 派生:子类在父类的基础上又创建了自己的新的方法和属性 子类中有父类的同名方法:只用子类的 还希望用到父类中的方法:父类名(self,...).super(...)调用 抽象类:只能被继承,不能被实例化 模板.规则 抽象类的模板: from abc…
# class Foo:# name="kevin"## def __init__(self,puppy):# self.tomato= 'red'# self.dog = puppy# def bar(self,name):# print('you are %s' % name)# print('i am %s' % self.name)## a = Foo('金毛') #这里传递的参数 是初始化 __init__# a.bar('tugou')# #上面的self指代类本身## #…
组合: 夺命三问: 1.什么是组合? 组合指的是一个对象中,包含另一个或多个对象. 2.为什么要用组合? 减少代码的冗余. 3.如何使用组合? 耦合度: 耦: 莲藕 ---> 藕断丝连 - 耦合度越高: 程序的可扩展性越低. - 耦合度越低: 程序的可扩展性越高. 总结: - 继承: 继承是类与类的关系,子类继承父类的属性/方法,子类与父类是一种 “从属” 关系. - 组合: 组合是对象与对象的关系,一个对象拥有另一个对象中的属性/方法,是一种什么有什么的关系. # 组合实现 class Peo…
面向对象 1.什么是面向对象? 面向对象是一门编程思想! - 面向过程编程思想: 核心是 “过程” 二字,过程指的是解决问题的步骤,即先干什么再干什么! 基于该编程思想编写程序,就好比在设计一条工厂流水线,一种机械式的思维方式. 优点: 将复杂的问题流程化,进而简单化 缺点: 牵一发而动全身,程序的可扩展性差. 注意: 编程思想仅仅是一门思想,与任何的技术无关. - 面向对象编程思想: 注意: 要将自己当做一个上帝!!! 核心是 “对象” 二字,对象指的是 “特征与技能” 的结合体. 基于该编程…
面向对象编程 概念:简称OOP,是一种程序设计思想:OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数 面向对象的设计思想:抽象出类class,根据类class创建实例对象instance 类: 用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例 对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法 类对象:当你这个类定义完的时候,类定义就变成类对象,可以直接通过“类名.属性”或者“类名.方法名()”引用…
https://www.cnblogs.com/Lin-Yi/p/7305364.html 闭包有啥用??!! 很多伙伴很糊涂,闭包有啥用啊??还这么难懂!  3.1装饰器!!!装饰器是做什么的??其中一个应用就是,我们工作中写了一个登录功能,我们想统计这个功能执行花了多长时间,我们可以用装饰器装饰这个登录模块,装饰器帮我们完成登录函数执行之前和之后取时间. 3.2面向对象!!!经历了上面的分析,我们发现外函数的临时变量送给了内函数.大家回想一下类对象的情况,对象有好多类似的属性和方法,所以我们…
http://www.runoob.com/python3/python3-class.html https://www.imooc.com/learn/317 慕课网:987809563@qq.com,mk333 1-面向对象技术简介 2-定义类并创建实例 3-创建实例属性 4-初始化实例属性 5-访问限制 6-创建类属性 7-类属性和实例属性名字冲突 8-定义实例方法 9-方法也是属性-不懂 10-定义类方法 11-继承 12-继承-判断类型 13-继承-多态 14-继承-多重继承 15-继…
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表示例 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'ZhangYan…
编程的乐趣 编程柔术 当你坐下来,打算如何组织计划要定时,具体程序,然而,无论什么经验.在实现时间的函数的,你会逐渐学会了原来的设计,实用的新知识.我们不应该忽视沿途汲取的教训,相反,它们用于其他设计软件(或重建)在. 灵活性的实现包含很多方面.以下是当中两个: 原型设计:python最优秀的功能之中的一个就是能够高速地编敲代码. 编写原型程序是更充分地了解问题的一种非常好的方法. 配置:灵活性有非常多种存在形式.配置的目的就是让程序某部分的改变更简单,对于你和用户来说都是这样. 第三点是自己主…
#字符串可以通过下表取值,如下程序 names='java python' print(names[0],names[5]) #使用for循环轮询所有name值 ''' for name in names: print(name) #其他程序循环写法 for i in range(len(names)): print('222222%s'%names[i])   #for循环尝试 names1=['java','python'] for name in names1: print(name) '…
一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继承: 重用性:减少代码的重复,子类可以复用父类的方法 派生:子类在父类的基础上又创建了自己的新的方法和属性 子类中有父类的同名方法:只用子类的 还希望用到父类中的方法:父类名(self,...).super(...)调用 抽象类:只能被继承,不能被实例化 模板.规则 抽象类的模板: from abc…
一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组合: 一个类的对象 作为另一个类对象的属性 让两个类之间产生关系 __dict__(): 查看类中所有静态属性和方法 查看所有对象的属性.类对象指针 静态属性:类的属性,所有的对象共享这个变量 对象名:去修改 类的静态属性 在对象的空间中有创建了一个属性,而不能修改类中属性的值 操作静态属性 应该…
充电时刻--模块 python的标准安装包含一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 不论什么python程序都能够作为模块导入. $ cat hello.py #!/usr/bin/python print "Hello,signjing!" $ ./hello.py Hello,signjing! 如果将python程序保存在/home/ggz2/magiccube/mysh…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/signjing/article/details/36201499 标准库:一些最爱 集合.堆和双端队列 集合 集合Set类位于sets模块中. >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> set(range(10)) set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])   集合是由序列(或其它可迭代…
面向对象初识 python中一切皆对象. 类有两种: 新式类:在py3中所有类都是新式类 经典类:在py2中只有类本身继承了object类才叫做新式类,默认是经典类 class Person: country = "中国" # 静态属性 def __init__(self, name, age, sex): # 初始化对象 在实例化时自动将对象/实例本身传给__init__的第一个参数. self.name = name self.age = age self.sex = sex de…