一.定制序列(容器类型) http://bbs.fishc.com/forum.php?mod=viewthread&tid=48793&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403:容器类型 协议(Protocols)与其他编程语言中的接口很相似,它规定你哪些方法必须要定义.然而,在Python中的协议就显得不那么正式.事实上,在Python中,协议更像是一种指南. 定制容器的协议 如果你希望定制的容器是不可变的话,你只需要定义__len…
定制魔法方法 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义.而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过是龟数开发python时已经给出了,已经自带了基本能想到的功能都带有了,换句话就是已经给我们事先定义好了,要用的话,直接拿来就用就是,不需要我们自己再去定义.定制魔法方法就是自定义魔法方法了.但是必须遵循定制魔法方法的一些规则 2.怎么定制 说到定制魔法方法,那么魔法方法是哪里有的?类啊,要想定制魔…
python2.2之后,对类和类型做了同意,将int().float().str().list().touple()这些BIF转换为工厂函数 >>> type(len) <class 'builtin_function_or_method'> >>> type(int) <class 'type'> >>> type(dir) <class 'builtin_function_or_method'> >>…
一.简单定制 基本要求: -- 定制一个计时器的类 -- start和stop代表开始计时和停止计时 -- 假设计时器对象t1,print(t1)和直接调用t1均显示结果 -- 当计时器未启动或停止计时时,调用stop方法会给予温馨的提示 -- 两个计时器对象可以相加:t1 + t2 -- 只能使用提供的有限资源完成 ===================================================== 程序编写之前需要了解一下资源(知识点) -- 使用time模块的loca…
描述符(property的原理) 描述符(descripto),用一句话来解释,描述符就是某种特殊的类的实例指派给另一个类的属性.那么什么是特殊类型的类呢?就是至少要在这个类中定义__get__().__set__()..__delete__()三个特殊方法中任意一个. 下面是描述符相关的魔法方法: 魔法方法 含义 __get__(self,instance,owner) 用于访问属性,它返回属性的值 __set__(self,instance,value) 将在属性分配操作中调用,不返回任何内…
魔法方法 这个名字真的很中二有没有 = =(或者说翻译气息太浓了,作为一个学外语的看到这种真是想吐槽的不行..) 从形式上来说,在方法的名字前后个加上两条下划线的就是魔法方法了 .从功能上说,所有魔法方法都是python内建定义好的.不能自己定义一个__test__之类的.(当然你也可以让一个普通的方法叫这个,但它不是所谓魔法方法).魔法方法的主要用法,就是在自定义类中进行覆盖重写.它的功能就是可以把原先调用的方式object.__method__()这样的形式转换成更加简单的形式.比如熟悉的_…
接下来这个为啥要叫魔法方法呢,额,这个嘛我是跟小甲鱼的视频取的名字一样的,因为会讲比较多杂的东西,有... 魔法方法详细阅读地址:http://bbs.fishc.com/thread-48793-1-1.html 啥是魔法方法呢? 魔法方法是“面向对象”python的一切,一般被双下划线包围着,例如__init__(self[,...]): __init__这个是一个构造函数,在类里面一般用于属性初始化,返回值为Null,不要在__init__函数下return值. 我们在实例化对象的时候,大…
with语法在Python里很常见, 主要的利好是使用代码更简洁. 常见的使用场景有: 1. 资源对象的获取与释放. 使用with可以简化try...finally ... 2. 在不修改函数代码的前提下设置函数的默认参数 例如, 读写一个文件. 在读写前, 要打开它:在读写结束后要关闭它:读写过程中出现异常也得关闭它. 如果不使用with, 就得这么写: try: f = open('xxx', 'w') # write ... finally: f.close() 如果使用with, 则简短…
面向对象知识 封装 封装的原理是,其成员变量代表对象的属性,方法代表这个对象的动作真正的封装是,经过深入的思考,做出良好的抽象(设计属性时用到),给出“完整且最小”的接口,并使得内部细节可以对外透明(注意:对外透明的意思是,外部调用者可以顺利的得到自己想要的任何功能,完全意识不到内部细节的存在)优点: 1.控制对数据的操作将数据隐藏起来这不是目的.隐藏起来然后对外提供操作该数据的接口,然后我们可以在接口附加上对该数据操作的限制,以此完成对数据属性操作的严格控制2.隐藏实现方法实现代码例如:#取款…
1.构造和析造 魔法方法就是被双下划线包围的方法 __init__()方法 __init__方法默认没有参数,返回值为none.类实例化对象需有明确的初始化步骤要重写函数 >>> class Rectangle: def __init__(self,x,y): self.x = x self.y = y def getPeri(self): return (self.x+self.y)*2 def getArea(self): return self.x * self.y >>…