python继承

python - unittest 单元测试学习

大城市里の小女人 提交于 2020-02-18 07:23:47
单元测试 单元测试是用来对一个模块、一个函数或者一个类进行正确性检验的测试工作 比如对Python中的abs 的测试 输入正数: 比如 1, 2, 3, 返回值不变 输入负数: 比如 -1, -2, -3, 返回值是本身取反 输入0: 比如 0, 返回值0 把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。 如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复使单元测试能够通过。 单元测试通过后有什么意义呢?如果我们对abs()函数代码做了修改,只需要再跑一遍单元测试,如果通过,说明我们的修改不会对abs()函数原有的行为造成影响,如果测试不通过,说明我们的修改与原有行为不一致,要么修改代码,要么修改测试。 这种以测试为驱动的开发模式最大的好处就是确保一个程序模块的行为符合我们设计的测试用例。在将来修改的时候,可以极大程度地保证该模块行为仍然是正确的。 我们来编写一个Dict类,这个类的行为和dict一致,但是可以通过属性来访问,用起来就像下面这样: >>> d = Dict(a=1, b=2) >>> d['a'] 1 >>> d.a 1 Dict 类的具体实现: 1 class Dict(dict): 2 def __init__(self,**kw): 3 super(Dict,self)

第一篇:初识Python

可紊 提交于 2020-02-17 07:32:14
一 本节目标 二 了解编程语言 2.1 为什么要编程? 2.2 什么是编程语言? 2.3 编程语言分哪些种类? 三 python简介 3.1 Python的前世今身 3.2 Python可以应用于众多领域 3.3 python是一种怎样的语言 3.4 为何选择Python 3.5 Python解释器的种类 3.6 python解释器的发展史 四 python环境 五 python入门 5.1 第一句python代码 5.2 文件头 5.3 注释 5.4 执行脚本传入参数 5.5 了解pyc文件 六 变量 6.1 为何要有变量 6.2 变量的声明与引用 6.3 标识符命令规范: 6.4 变量的赋值 七 输入输出 八 简单的运算符 九 流程控制 9.1 条件语句 9.2 循环语句 十 本节练习 一 本节目标 了解编程语言 了解python及与其他语言的优劣对比 安装python解释器及环境变量配置、运行python交互式环境 打印hello world程序 初识变量、用户输入,流程控制,while循环 二 了解编程语言 2.1 为什么要编程? 解放人力 :让机器(比如计算机)按照人们事先为其编写好的程序自发地去工作 2.2 什么是编程语言? 人----------->汉语--------------->中国人 八格牙路----------->日本人 汪汪汪------------->狗

Python开发【第一篇】:初识Python

谁都会走 提交于 2020-02-17 07:31:22
Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 注:ABC语言是由Guido参与设计的一种教学语言,是专门为非专业程序员设计的。就Guido本人看来,ABC这种语言非常优美和强大,但是ABC语言并没有成功,究其原因,Guido认为是非开发造成的。Guido决心在Python中避免这一错误。同时,他还想实现在ABC中闪现过但未曾实现的东西。(百度百科) 最新的TIOBE排行榜,Python赶超PHP占据第五位。 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可。 Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有: 自动化运维、自动化测试、大数据分析、爬虫、web 等。 注意:上述重点字体表示该公司主要使用Python语言开发。

PYTHON的tkinter类编码技巧

梦想与她 提交于 2020-02-16 19:36:24
1 添加用户回调函数 1.1 三种回调处理器 1.1.2 lambda 回调处理器 #lambda 基础说明 --> lambda argument:expression te = lambda c : print ( c ) # lambda 返回的是一个可运行的函数对象 # 等价于 def te ( c ) : print ( c ) # 处理器,上述例子中,print(c)这个函数被称为处理器 对于GUI的效果:处理器的回调被延迟,可以添加需要的参数。 1.1.2 Bound方法的回调处理器(绑定方法self) 在类中绑定方法。如下所示 class HelloClass : def __init__ ( self ) : widget = Button ( None , test = 'Hello event world' , command = self . quit ) widget . pack ( ) def quit ( self ) : print ( 'Hello class method world' ) sys . exit ( ) # 实际上传送的参数时 self 和 quit, 如果 这里要特别说明一点,传入一个未绑定的方法在GUI中是不起作用的。 1.1.3 可调用类对象的回调处理器 在可调用类的绑定方法,主要是通过 call 方法来实现拦截运行

Python的类

为君一笑 提交于 2020-02-16 19:05:47
Python是一种面向对象的语言。以其中的list数据结构来说,我们知道它存在list.append(),list.remove(),list.sort()等方法。 显然,由于list结构的存在,我们可以批量的形成多个list实例,例如 A = [1,2,3] B = [3,4,5] 显然,这里的list本质上就是一个类,而它存在很重要的一个原因就是可以将类对象进行量产。 目录 1.创建一个类 2.类的继承 3.类的多态 4.self是什么? 5.__init__是什么? 6.变量的公有和私有 1.创建一个类 比如,这里我们写一个乌龟的类, class Turtle(): def climb(self): print("正在努力的向前爬") def run(self): print("正在努力的向前跑") def bite(self): print("正在努力的向前咬") 这样,我们可以将这个类进行实例化。 tt = Turtle() 进一步,可以实现方法 2.类的继承 (1)继承是基于父类构建一个子类的简便方法。例如,我们可以基于Turtle类进一步构建一个忍者神龟类(NinjaTurtle) class NinjaTurtle(Turtle): pass 进一步实例化,并调用Turtle属性 NT = NinjaTurtle() 需要注意的是,如果子类定义了和父类一样的方法

Python—初识面向对象

旧街凉风 提交于 2020-02-16 04:40:21
楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢? 你搜罗了自己掌握的所有技能,写出了下面的代码来描述这两个角色 def person(name,age,sex,job): data = { 'name':name, 'age':age, 'sex':sex, 'job':job } return data def dog(name,dog_type): data = { 'name':name, 'type':dog_type } return data 上面两个方法相当于造了两个模子,游戏里的每个人和每条狗都拥有相同里的属性。游戏开始,你根据一个人或一只狗传入的具体信息来塑造一个具体的人或者狗,怎么生成呢? d1 = dog("李磊","京巴") p1 = person("严帅",36,"F","运维") p2 = person("egon",27,"F","Teacher") 两个角色对象生成了,狗和人还有不同的功能呀,狗会咬人,人会打狗,对不对? 怎么实现呢,。。想到了, 可以每个功能再写一个函数,想执行哪个功能,直接 调用 就可以了,对不? def bark(d): print("dog

python面向对象之多态

安稳与你 提交于 2020-02-16 01:31:11
python面向对象之多态 多态: 同类对象的多种形态(子类化) 实现多态的步骤: 实现继承关系 重写父类方法 使用子类对象执行父类处理 class People : """人""" def dance ( self ) : print ( "跳舞" ) def play ( self ) : # 在不改变该方法的情况下, 让不同人跳不同舞 self . dance ( ) class OldMan ( People ) : """老人""" def dance ( self ) : print ( "跳广场舞" ) class Boy ( People ) : """少年""" def dance ( self ) : print ( "跳街舞" ) p1 = People ( ) p1 . play ( ) laowang = OldMan ( ) laowang . play ( ) # 老人跳广场舞 xiaohu = Boy ( ) xiaohu . play ( ) # 少年跳街舞 来源: CSDN 作者: 鞋子不会飞 链接: https://blog.csdn.net/weixin_45651336/article/details/104317609

python笔记19

﹥>﹥吖頭↗ 提交于 2020-02-15 17:55:15
今日内容 面向对象基本用法 好处和应用场景 面向对象的三大特性 内容详细 1.面向对象基本格式 # ###### 定义类 ###### class 类名: def 方法名(self,name): print(name) return 123 def 方法名(self,name): print(name) return 123 def 方法名(self,name): print(name) return 123 # ###### 调用类中的方法 ###### # 1.创建该类的对象 obj = 类名() # 2.通过对象调用方法 result = obj.方法名('alex') print(result) 应用场景:遇到很多函数,需要给函数进行归类和划分。 【封装】 练习题: #!/usr/bin/env python # -*- coding:utf-8 -*- class Db: def db_read(self): pass def db_write(self): pass def db_delete(self): pass def db_update(self): pass class File: def file_read(self): pass def file_write(self): pass def file_delete(self): pass def file

python之类介绍

你说的曾经没有我的故事 提交于 2020-02-15 05:49:31
python对象销毁(垃圾回收): 1>同Java语言一样,python使用了引用计数这一简单计数来追踪内存中的对象,也就是说,python内部记录着所有使用中的对象各有多少引用,一个内部跟踪变量称为一个引用计数器,当对象被创建的时候就创建了一个引用计数,当这个对象不再需要的时候,也就是说,这个对象的引用计数变为0的时候,它被垃圾回收,但是回收并不是立即执行的,是由解释器在适当的时机将垃圾对象占用的内存空间进行一个回收。 2>垃圾回收机制不仅针对引用计数为0的对象,同样也可以处理循环引用的情况,循环引用指的是两个对象相互引用,但是没有其他变量引用它们,这种情况下,仅适用引用计数是不够的,python的垃圾收集器实际上是一个引用计数器和一个循环垃圾收集器,作为引用计数器的补充,垃圾收集器也会留心被分配的总量很大的对象,即未通过引用计数销毁的对象,那在这种情况下,解释器会暂停下来试图清理所有未引用的循环。 python类的继承 面向对象的编程带来的主要好处之一就是代码的重用,实现这种重用的方法之一是通过继承机制。 1、声明类的时候括号中写要继承的父类。 2、类的继承衍生出类的子类可以继承或重写父类的方法,子类可以自定义新的方法或者成员变量,比如学生类可以继承用户类 来源: https://www.cnblogs.com/zqq521/p/6192725.html

绕过010Editor网络验证(用python做一个仿真http server真容易,就几行代码)

泪湿孤枕 提交于 2020-02-13 21:15:37
010Editor是一款非常强大的十六进制编辑器,尤其是它的模板功能在分析文件格式时相当好用!网上现在也有不少010Editor的破解版,如果没钱或者舍不得花钱买授权的话,去官方下载安装包再使用注册机算号是一个比较安全的选择。不过010Editor是有网络验证功能的,可以在本地架一个HTTP服务器来绕过这个验证(网上也能找到通过修改注册表绕过的方法,没有验证)。使用Python的BaseHTTPServer模块就可以实现这个功能(继承BaseHTTPRequestHandler并重写do_GET方法即可)。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/env python # -*- coding:utf-8 -*- from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler HOST = "127.0.0.1" PORT = 80 class RequestHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-Type", "text/html") self.end_headers()