【Python】学习笔记八:面向对象】的更多相关文章

类的高级用法 多态:   在其他语言,使用的是类的继承. 在python中,不需要指定数据类型. 基于TCP协议的socket通信实现: 类似于打电话的情景. 服务端: 1.买手机 2.插卡 3.开机 4.等待电话链接 5.收消息 6.发消息 7.挂电话 8.关手机 具体代码实现如下: import socket #导入一个socket模块 server1=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #买手机,基于socket的网络通信,使用…
一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 二.创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类" 和 "对象" 的使用. 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象…
面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 面向对象类成员 一.变量 变量包括:类变量和实例变量,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 类变量:属于类 实例变量:属于实例 class Role(object): #类变量,在内存…
面向对象 介绍(特性(class.object--->封装.继承,多态)).--->世界万物,皆可分类:世界万物,皆可对象 只要是对象,就肯定属于某种品类:只要是对象,就肯定有属性 你是上帝  地球---> 山川,河流,大海,森林 --->飞禽-飞,吃虫子,下蛋,(几百种鸟(布谷鸟-飞,吃虫子,下蛋,唱歌:乌鸦-飞,吃虫子,下蛋....)),走兽(狮子-百兽之王:老虎-森林之王) 臭鱼烂虾---->人-思考,说话,吃喝拉撒睡 语法(属性.方法.构造函数.析构函数(在实例释放.…
一:SQLAlchemy使用 1:实体类的创建 ORM中的实体类与一般的Python类不同,在其中,使用 __tablename__=""指明该类与数据库中某个表相对应,然后定义一系列成员属性,属性值使用 Column(数据类型) 来映射到表中具体哪一列. 首先,创建数据库引擎,并由静态方法获取一个基类:declarative_base() 创建了一个 BaseModel 类,这个类的子类可以自动与一个表关联. 然后,继承base类,定义实体类: 带外键的实体类创建: 最后,运行基类中…
面向对象是指用类来描述一个对象(实例),用类来建立实例与实例的关联关系 对象 : object     实例 : instance 1 类 1.1 什么是类 类是用来描述对象的工具,用类可以创建一个或多个同类对象.类 : class 1.2 类的作用 用来描述对象 用来创建具有相同属性的同类对象 1.3 类的创建 class 类名(继承列表): ””” 类文档字符串 “““ 实例方法(类内的函数methed)定义 类变量定义 类方法(@classmethod)定义 静态方法(@staticmet…
一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功能.举个例子,你要做饭,可以用电磁炉,也可以用煤气灶.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分别是面向过程编程和面向对象编程. 提到面向对象,就不得不提到另一种编程思想,面向过程:什么是面向过程呢,面向过程的思想是把一个项目.一件事情按照一定的顺…
本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.   引言 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做(人狗大战)的游戏,你就思考啊,人狗作战,那么至少需要两个角色,一个是人,一个是狗,且人和狗都有不同的技能,比如人拿棍子打狗,狗可以进行咬人等等,怎么描述这种不同角色和他们各自的功能呢?   你搜罗了自己掌握的所有技能,写下了下面的代码来描述这两个角色 def person(name,age,sex,job): data =…
一.类和实例 1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 2.对象:通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法. 3.类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 4.实例变量:定义在方法中的变量,只作用于当前实例的类. 5.对“类”和“对象”的使用: 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能. 对象则是…
class Foo: #类中的函数 def bar(self): #功能阐述 print('Bar') pass def hello(self,name): print('i am %s' %name) #根据Foo创建对象obj obj=Foo() #在创建对象的时候,记得后面加个括号 #注意,按照python的通用规则,Class用驼峰表示(HelloWorld) #而其他的obj等,都用'_'隔开(this_is_obj) #类中函数第一个方法必须是self,指代本类的一个东西,类中定义的…
下面是初步总结的Python的面向对象的参数定义,后面会逐渐完善面向对象的相关知识.…
大型python程序以模块和包的形式组织.python标准库中包含大量的模块.一个python文件就是一个模块.1.标准模块 python自带的,不需要你安装的2.第三方模块 需要安装,别人提供的. pip install xxx 自动化安装的 手动安装 首先下载安装包 解压 在命令行里面进入到这个解压之后的目录 执行python setup.py install3.自己写的 自己写的python文件import xx 导入一个文件 ,导入文件的实质是什么,把这个python运行一次import…
什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. import threading,time #定义线程启动后,调用函数 def run(num): print("threading...[%s]" % num) time.sleep() ): #方式一 t = threading.Thread(target=run, a…
一.变量,对象,引用: 1. 变量: 2. 对象:均包含了一个头部信息,有以下两部分内容 a.对象的数据类型, b.引用计数器:纪录当前引用货指向该对象的数量,一旦计数器被清零,该对象的内存空间就会被回收. 3. 引用:关联变量和对象之间的指针, a=3 二.共享引用,新创建对象: 1. a=3 b=a a='spam' a变了,b还等于3,因为b指向的对象没有发生变化,b的指针也没有变. 2.  a=3 b=a a=a+2 b是什么情况? Python里给一个变量赋新值,并不会改变原有的对象,…
__slots__特殊变量的使用: 由于Python是动态语言,允许先编写类,然后在创建实例的时候添加属性或者方法:而__slots__特殊变量就是,限制往类里添加属性的: 在创建类的时候,使用__slots__ =('name','age'),就是在创建实例时候,只允许添加绑定name和age两个属性:注意!__slots__只对当前类有效,不会作用于子类: @property装饰器:为了实现数据的封装,不把属性暴露在外面,所以如果想访问实例内部属性的话,就需要使用get和set方法,但是这样…
1 新式类和旧式类 python类的工作方式在不断变化.较新的Python2版本有两种类,其中旧式类正快速退出舞台.新式类时Python2.2 引入的,提供了一些额外功能,如支持函数super 和 property,而旧式类不支持.要创建新式类,必须直接或间接的继承Object 或设置 __metaclass__. 2 特殊方法(魔法方法) Python中有很多特殊方法,其名称以两个下划线开头和结尾.这些方法的功能各不相同,但大都由python 自动调用. 3 构造函数 在很多面向对象语言中都有…
4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"apple","b":"banana","g":"grape","o":"orange"} print(dict.keys()) print(dict.values()) [root@Da…
python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分为这三个部分来讲解的 简单,功能性,一般不修改直接调用查看结果 实现简单功能,定义后使用 实现比较复杂功能,常常是一些我们常见类的特性的实现原理,具体分为 实例成为可迭代对象(列表的特性) 实例索引取值(列表的特性) 上下文管理(文件的特性)等 简单功能 这部分包括上面列出的前两个点 不需要修改直接…
文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() 获取文件编码,f.encoding() 获取文件在内存中的编号,f.fileno() 获取文件终端类型(tty.打印机等),f.isatty() 获取文件名,f.name() 判断文件句柄是否可移动(tty等不可移动),f.seekable() 判断文件是否可读,f.readable() 判断文件是…
一.文件的打开和创建 1.打开 open(file,mode): >>>fo = open('test.txt', 'r') >>>fo.read() 'hello\n' >>>fo.close() file(file,mode): >>>f = file('test.txt', 'r') >>>f.read() 'hello\n' >>>f.close() mode可取值: 2.创建 用w/w+/…
1.类定义:Python3中,如果新建的类没有继承任何其他类,默认继承基础类object.Python2中如果没有显式继承object类就是经典类,而显式继承了object类就是新式类,Python2推荐使用新式类. 2.类变量:类变量就是直接在类中,但是在方法外定义的变量.类变量是所有该类的实例所共有的,且类的每个实例都可以修改类变量. 3.成员变量:成员变量就是在定义时加了self前缀的变量,一般在__init__方法就定义了,成员变量会跟着实例“一起走”. 4.类的继承:直接在类后括号里加…
当多个类中出现相同功能,但是功能主体不同时,我们可以向上抽取,只抽取功能定义,而不抽取功能主体. 抽象类的特点 抽象方法一定在抽象类中. 抽象方法和抽象类都必须被abstract关键字修饰. 抽象类不可以用new创建对象,因为调用抽象方法没有意义. 抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,才能建立子类对象调用.(如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类.) abstract class Student { abstract void study(); abstr…
说起高级其实也就是些基础的东西,但是活用和熟用肯定会大幅度提升代码质量 首先要记录的是面向对象的灵活性,及如何去控制其灵活性,她允许你在实例中新增属性和方法,允许你给类新增属性和方法,也支持在定义类时就声明方法,正因为如此,才让他变得很灵活,但是很多时候不是随心所欲,如果过于灵活,那任何一个子类都可以对基类去修修改改,显然是不合适的,那么我们就需要去控制这种灵活度,于是slots函数出现了. __slots__函数 slots函数限定了当前类中的属性值,一旦出现了slots函数,那么该类的实例只…
由于之前有一定基础,所以python中的类的概接受的比较快,与其他语言一样, python也是通过类来进行事务的抽象,一切皆对象,要不然怎么说程序员不缺对象呢. 言归正传,python中类的声明是class 类名(父类):的形式定义,在类中self表示指向自身,__init__方法表示的是构造方法,也就是初始化数据所用的方法,与其他语言一样,同样构造方法参数的不确定性也决定了类的其他强大特性,比如多态,继承. python中在子类中也允许重写父类方法,且python子类中允许为父类添加属性值.比…
集合 set是一个无序的不重复元素序列. 用大括号或set()函数创建集合.注意:创建一个空集合用set(),不用{},{}用来创建空字典 basket = {'apple','orange','apple','pear','banana'}print(basket) #去重功能print('orange' in basket) #是否存在集合中print('cc' in basket) a = set('abcddefgbbacd')b = set('ababczzd') print(a)pr…
一.异常处理 在程序运行过程中,总会遇到各种各样的错误.程序一出错就停止运行了,那我们不能让程序停止运行吧,这时候就需要捕捉异常了,通过捕捉到的异常,我们再去做对应的处理. 下面我们先写一个函数,实现除法运算. def calc(a,b): return a/b print(calc(5,1))#调用,没有错误,结果是5.0 >>> 5.0 print(calc(5,0))#再次调用,这时候就不对了,因为被除数不能为0,下面报了一堆错,程序停止运行了 >>> ZeroD…
Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin') 添加 s.add() s.update() 删除 s.remove() 关系操作: in , not in == , != 超级,子集 交集 并集 差集 对称差集 3. 函数 特性:代码重用.保持一致性.可扩展性 函数的定义 函数的参数:必备参数.关键字参数.默认参数.不定长参数 函数的返回值…
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般会看到以下几种格式的文件: msi, egg, whlmsi文件:Windows系统的安装包, 在Windows系统下可以直接双击打开, 并按提示进行安装egg文件:setuptools使用的文件格式, 可以用setuptools进行安装whl文件:wheel本质上是zip文件, 它使用.whl作为…
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环境的搭建过程,以及Hello World的实现. 第二篇 VS2013中Python学习笔记[基础入门] 我简单学习使用了Python的几个基础的知识点. 第一个Web页面 第一步:首先打开VS2013开发工具 ,新建项目,选择Django Project模版. 修改项目名称,可以查看到项目的文件结…
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho…