Python面对对象相关知识总结】的更多相关文章

很有一段时间没使用python了,前两天研究微信公众号使用了下python的django服务,感觉好多知识都遗忘了,毕竟之前没有深入的实践,长期不使用就忘得快.本博的主要目的就是对Python中我认为重要的面对对象知识进行总结,一是加深记忆,而是方便日后遗忘了好迅速的捡起来. 目录索引: (1)隐式的基类object (2)python中类和对象的区别 (3)实现python风格类所用特殊方法 (a)__all__和__slots__ (b)__format__().__repr__()和__s…
目录 Python - 面对对象(其他相关,异常处理,反射,等..) 一.isinstance(obj, cls) 二.issubclass(sub, super) 三.异常处理 1. 异常处理 2.异常种类 3.异常其他结构 4.主动触发异常 5.自定义异常 6.断言 四.反射 五. 单例模式 Python - 面对对象(其他相关,异常处理,反射,等..) 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass ob…
目录 Python - 面对对象(基础) 一. 概述 二. 创建类和对象 三. 面向对象三大特征 封装 继承 多态 Python - 面对对象(基础) 一. 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 面向过程编程(Object Oriented Programming,OOP,面向对象程序设计) 最易被初学者接受,其往往用一长段代码来实现指定功能,开发…
目录 Python - 面对对象(进阶) 类的成员 一. 字段 二. 方法 三. 属性 类的修饰符 类的特殊成员 Python - 面对对象(进阶) 类的成员 一. 字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 #### 字段的定义和使用 class Province: # 静态字段 country = '中国' def __init__(self, name): # 普通字段 self.name = n…
小学生绞尽脑汁也学不会的python(面对对象-----类与类之间的关系 1. 依赖关系. 最轻的一种关系 在方法中引入另一个类的对象 class Elephant: def __init__(self, name): self.name = name def open(self, ref): # 想要的是一个冰箱. 是哪个冰箱没有制定 print("冰箱哥哥, 开门把") ref.open_door() def close(self, ref): # 依赖关系 print("…
小学生绞尽脑汁也学不会的python(面对对象-----成员) 成员 class Person: def __init__(self, name, num, gender, birthday): # 成员变量(实例变量) self.name = name self.num = num self.gender = gender self.birthday = birthday # 对象来访问(成员方法)(实例方法) def marray(self, duifang): print("人会结婚%s&…
前言:本文主要介绍python面对对象中的类和继承,包括类方法.静态方法.只读属性.继承等. 一.类方法 1.类方法定义 使用装饰器@classmethod装饰,且第一个参数必须是当前类对象,该参数名一般约定为“cls",通过它来传递类的属性和方法 (不能传递实例属性和实例方法),跟实例方法的self用法相似. 2.类方法的调用 实例对象和类对象都可以调用 3.应用场景 在需要站在类的角度执行某个行为时,那么就可以定义为类方法 class Student: def __init__(self,…
前言:本文主要介绍python面对对象中的类和对象,包括类和对象的概念.类的定义.类属性.实例属性及实例方法等. 一.类和对象的概念 问题:什么是类?什么是实例对象? 类:是一类事物的抽象概念,不是真实存在的,描绘了该类事物共有的特征和行为 例如:猫类.狗类.鸟类.车类等 实例对象:某类事物的具体个体,是该类事物的具体表现,它是真实存在的 例如:“张三”是具体的某个“人“,”二哈“是具体的某个”狗“ 二.类的定义 关键字:class 定义类的方法: 方式一:class 类名: 方式二:class…
一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放入eval方法就能够执行的python语句字符串 注意,不要一看到format方法就认为他是用来取代%赋值的 *在里format方法可通过后面的!r与!s来指定使用repr还是str,即此时就不是用的format方法了,而是调用的repr或者str format有两种参数形式: 1:"",…
面对对象编程估计我们最早接触到的就是__init__了,也就是实例的初始化处理过程: 1:来看看最基础的__init__ class Card(object): #抽象类Card,并不用于实例化 def __init__( self, rank, suit ): self.suit= suit self.rank= rank self.hard, self.soft = self._points() print("try") class NumberCard( Card ): def…
面对过程VS面对对象 面向过程的程序设计的核心是过程,过程就是解决问题的步骤,面向过程的设计就是考虑周全什么时候处理什么东西 优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点 :一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 类和对象 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 对象:通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法. 创建类 使用c…
下面给大家介绍以下元组的相关知识: ·元组可以看成是一个不可更改的list 1.元组的创建 # 创建空元祖 t = () print(type(t)) # 创建只有一个值的元组 # 观察可知元组中如果纯数字的话,类型是int,加个逗号就好了 t1 = (1) t2 = (1,) print(type(t1)) print(type(t2)) t = 1,# 也要有逗号 print(type(t)) print(t) # 创建多个值的元组类型1 t = (1,2,3,4,5) print(type…
目录 面向对象基础 面向对象编程(抽象) 类与对象 给对象定制独有的特征 对象的属性查找顺序 类与对象的绑定方法 类与数据类型 对象的高度整合 面向对象基础 面向对象编程(抽象) 回顾一下 面向过程编程(思想 ) 流水线 优点:逻辑清晰(逻辑一步步的,系统) 缺点:扩展性差(上一个函数的输出是下一个函数的输入) 面向对象编程(思想) 对象: 特征和技能的结合体 面对对象编程:一个个对象进行交互 优点:扩张性非常强 缺点:逻辑非常复杂 类与对象 类(类别):一系列具有相同特征和技能的对象 现实世界…
面对对象:以人类为例,人类通用功能:吃喝拉撒,就可以封装成一个类,不同功能:嫖赌毒,就是对象的不同功能.继承,多态… 上码 class Person(object): def __init__(self,eat,dink,la): self.eat=eat self.dink=dink self.la=la print('构造方法') def __call__(self,*args,**kwargs): print("类直接调用") def public(self): print(&q…
抽象基本类的几大特点: 1:要定义但是并不完整的实现所有方法 2:基本的意思是作为父类 3:父类需要明确表示出那些方法的特征,这样在写子类时更加简单明白 用抽象基本类的地方: 1:用作父类 2:用作检验实例类型 3:用作抛出异常说明 关于抽象基本类的几点说明:1:LSP(里式替换原则): 子类必须能够替换他们的基类型,替换后软件运行形态不变,觉察不出基类和子类的区别. 这样来检验该设计是否合理或者藏有缺陷.(从抽象类继承而不是具体类) 2:关于isinstance的使用: 首先:大量的isins…
面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写. 实例变量:定义在方法中的变量,只作用于当前实例的类. 继承:即一个派生类(derived…
类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很大,晚上睡觉 2.继承顺序 在python2版本中多重继承有分两种继承循序 (1).一直往上找 .找到最高级的父类再重另外一个分支找,直到找到为止. (2).一直往上找,找到最高级父类的下一层后就不找了.从另外一个分支找,另外一个分支没找到最后才找最高级的父类. 再python3中只有第一种继承循序…
一:callables callables使类实例能够像函数一样被调用 如果类需要一个函数型接口这时用callable,最好继承自abc.Callable,这样有些检查机制并且一看就知道此类的目的是callable对象如果类需要有‘记忆’功能,使用callable是非常方便的相对于函数而言,callable语法什么的就要复杂多了,这也是其主要的缺点: def x(args): body 转化为callable对象: class X(collections.abc.callable): def _…
一:最基本的属性操作 class Generic: pass g= Generic() >>> g.attribute= "value" #创建属性并赋值 >>> g.attribute 'value' >>> g.unset Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeEr…
List的元素可以是Python的任意数据类型(Boolean,Number,String,List,Dict,Set……) List同样可以使用索引和切片,切片得到的结果也是列表. print(li[0]) print(li[3:-1]) List支持for in循环和while循环,因此List也是可迭代对象. 列表和字符串不一样,列表可以被修改.List可以指定索引号修改,删除修改,切片修改,也可以通过切片删除,如del Li[2:6] 列表五种删除的方法:popremove clear…
Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. so…
一.构造方法 在使用类创建对象的时候(就是类后面加括号)就自动执行__init__方法. class A: def __init__(self): print('A') class B: def __init__(self): print('B') obj = A() #虽然只是创建了obj对象,但是执行了__init__方法,输出了A Python中派生类可以继承父类的构造方法 1.基于super() 遇到super()就表示去执行父类的xxx属性 class A: def __init__(…
一.类的相关概念 (1).什么是类 具有同种属性的对象称为类,是个抽象的概念.比如说:汽车.人.狗.神: (2).什么是对象或实例 日常生活中的所有东西都是对象,是类的实例化.比如说:推土车是汽车的实例化,集数据属性和方法属性为一身的就是一个对象. 二.类属性.实例属性 (1).类属性 类属性从字面意义上说就是类所具有的属性,可以理解为一个类中的全局变量. (2).实例属性 类实例化成实例对象所具有的属性 举个例子: class School_cla: s_name = "清华" 这个…
昨天读完了<Mastering Object-oriented Python>的第一部分,做一些总结. 首先,第一部分总过八章,名字叫Pythonic Classes via Special Methods,也就是讲如何通过特殊方法构造以及设计类的. 其次,第一部分通篇使用的类的例子是BlackJack,也就是21点纸牌游戏,本篇先跳出来实现下21点游戏的代码,这里看明白了免得后面只使用部分时产生不清楚.[21点玩法] 以下代码我写了两个版本,版本一是原本自己按最普通的写法写的,版本二是用了部…
字典是无序的,多次print输出的结果不一样. 字典的key可以是数字.字符串.元组.布尔值(True为1,False为0,不可以和其他key值重复):列表和字典不能作为key. 字典的value可以是任何类型. 字典支持del方法删除. 字典支持for循环,是可迭代对象,不支持while循环. 输出字典所有的key: for item in info.keys(): print(item) 输出字典所有的值: for item in info.values(): print(item) 输出字…
列表是有序的,列表元素可以被修改.元组是有序的,元组的一级元素不可被修改,但如果是元组的二级.三级元素并且刚好该元素是列表,则可以被修改.元组中的元组可进行for 循环,因此元组也是可迭代对象.字符串也是不能被修改的.字符串.列表和元组可以相互转换,都可以进行for循环,都是可迭代对象.元组的最后一个元素后面最好加一个‘,’  以防和参数方法等混淆. 通过索引取值. >>> tu=(11,22,33,44,) >>> v=tu[0] >>> print…
1.property 用途:用来将对像的某个方法伪装成属性来提高代码的统一性. class Goods: #商品类 discount = 0.8 #商品折扣 def __init__(self,name,price): self.name = name self.price = price def discountprice(self): #定义goodsprice方法,返回折扣后价格 return self.price*self.discountipad = Goods('ipad',2299…
继承,继承其它实例化样本的属性和方法,需要在声明里重新定义和使用 class School(object): def __init__(self, name, addr): self.name = name self.addr = addr self.student = [] # 用于进行学生类的存储 self.teacher = [] # 用于进行老师类的存储 def enroll(self, stu_obj): print('招录进来学生%s'%stu_obj.name) self.stud…
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:python视觉算法 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 单继承 输出结果为: python 说: 我已经 20 岁了,我现在在读 7 年级 多继承 需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是…
写一个集合类的三种方法:wrap,extend,invent 一:包装一个集合类 class Deck: def __init__( self ): self._cards = [card6(r+1,s) for r in range(13) for s in (Club,Diamond, Heart, Spade)] #这就是受包装的list型数据,添加方法对其进行操作 random.shuffle( self._cards ) def pop( self ): return self._ca…