python继承

Python面向过程编程

ぐ巨炮叔叔 提交于 2019-11-27 08:31:37
目录 面向过程编程 面向过程编程 “ 面向过程 ”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。 面向过程其实是最为实际的一种思考方式,就算是 面向对象 的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。对比面向过程,面向对象的方法主要是把事物给对象化,对象包括属性与行为。当程序规模不是很大时,面向过程的方法还会体现出一种优势。因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。比如拿学生早上起来这件事说明面向过程,粗略的可以将过程拟为: (1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校 而这4步就是一步一步地完成,它的顺序很重要,你只需要一个一个地实现就行了。而如果是用 面向对象 的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不一定按照原来的顺序。 来源: https://www.cnblogs.com/chenziqing/p/11354597.html

Python之面向对象

邮差的信 提交于 2019-11-27 08:08:40
创建类:   class class_name(upper):      类的初始化:    1 class Test: 2 3 def __init__(self, foo): 4 self.__foo = foo 5 6 def __bar(self): 7 print(self.__foo) 8 print('__bar') 9 10 ... 11 __var 12 __function_name() 13 以双下划线开头的表示私有属性或方法 14 可以用getter或setter方法获得 15 16 定义getter方法 17 @property 18 def name(参数): 19 return or print() 20 21 @name.setter 22 def name(参数): 23 self._name=name 24 25 必须现有getter方法才能设置setter方法 26 ... 27 28 29 还可以以一种方法访问: 30 31 class Test: 32 33 def __init__(self, foo): 34 self.__foo = foo 35 36 def __bar(self): 37 print(self.__foo) 38 print('__bar') 39 40 41 def main(): 42 test = Test(

继承 多态 封装 及内置函数

纵然是瞬间 提交于 2019-11-27 06:12:01
**什么时候用组合什么时候用继承:** 老师类 和 生日类 老师的生日 老师.生日 用组合 老师类 和 人类 老师是人 class老师类(人类) 用继承 另外,有相同属性也可判断要用继承 ### 组合 一个对象的属性值是另外一个类的对象 一个类的属性 用另一个类的对象来描述 两连点:alex.weapon.hand18(jin) alex的weapon属性,因为是一个另类的对象,weapon也有自己的方法,故两连点 ```python # 人狗大战 class Dog: def __init__(self,name,aggr,hp,kind): self.name = name self.aggr = aggr #武力值 self.hp = hp #血 self.kind = kind #咬 def bite(self,person): person.hp -= self.aggr class Person: def __init__(self,name,aggr,hp,sex): self.name = name self.aggr = aggr self.hp = hp self.sex = sex self.money = 0 def attack(self,dog): dog.hp -= self.aggr #获取装备 def get_weapon(self,weapon)

Python开发:初识Python

泪湿孤枕 提交于 2019-11-27 05:47:58
Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有: 自动化运维 、 自动化测试 、 大数据分析、爬虫、Web 等。 注视:上述重点字体表示该公司主要使用Python语言开发 为什么是Python而不是其他语言? C 和 Python、Java、C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行 Python 和 C

1-3 python介绍和安装

瘦欲@ 提交于 2019-11-27 05:23:11
一.python介绍: 1.python的创始人为吉多·范罗苏姆(Guido van Rossum)。Guido(龟叔)在1989年圣诞节期间开始写Python语言的编译器,作为ABC语言的一种继承。Python名字来源于龟叔挚爱的电视剧Monty Python's Flying Circus,创造于C和shell之间。 2.TIOBE排行榜:python排名第4 3.python应用领域:爬虫、数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等 ·云计算:最火语言,典型应用OpenStack ·WEB开发:web框架均为python开发,例如Youtubo,Dropbox,豆瓣。典型的web框架有Django ·科学运算、人工智能:典型库Numpy,SciPy,Matplotlib,Enthought,librarys,pandas ·系统运维:运维人员必备语言 ·金融:量化交易、金融分析 ·图形GUI:PyQT,WxPython,TkInTer 4.python(解释型语言)语言属性: ·编程语言分为:编译型和解释型 静态语言和动态语言 强类型定义语言和弱类型定义语言 ·编译型语言-编译器:把源程序编译成机器语言,并保存二进制文件,计算机直接以机器语言运行程序,速度非常快。 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做1次,运行时不需要编译

python运行出现TypeError: super() takes at least 1 argument (0 given)错误

拜拜、爱过 提交于 2019-11-27 05:17:24
在写继承子类的时候出现了TypeError: super() takes at least 1 argument (0 given)的error; 源代码(python3中完美可运行): class Example(QWidget): def __init__(self): super().__init__() self.initUI() #界面绘制交给InitUi方法 原因是super().__init__()函数在python3中支持,是正确的,但是放到python2中会出现问题; 如果在python2想要继承父类的构造方法,则需要给super参数中传入参数:super(Example,self).__init__(); python2中需这样写: class Example(QWidget): def __init__(self): super(Example,self).__init__() self.initUI() #界面绘制交给InitUi方法 源代码(python3中完美可运行): class Example(QWidget): def __init__(self): super().__init__() self.initUI() #界面绘制交给InitUi方法 原因是super().__init__()函数在python3中支持,是正确的

python super用法

纵饮孤独 提交于 2019-11-27 04:06:51
super()用法 功能 super功能:super函数是子类用于调用父类(超类)的一个方法。 用法 1.在子类 __init__() 方法中正确的初始化父类,保证相同的基类只初始化一次。2.覆盖特殊方法。 3.解决多重继承中,子类重复调用父类方法的问题。 注意 super()继承只能用于新式类,用于经典类时就会报错。 新式类:必须有继承的类,如果无继承的,则继承object 经典类:没有父类,如果此时调用super就会出现错误:『super() argument 1 must be type, not classobj) 在子类__init__()方法中正确初始化父类,保证相同的基类只初始化一次 # 假如说在父类中实现了一个方法,你想在子类中使用父类的这个方法并且做一定扩展但是又不想完全重写,并且这个场景中的继承属于多继承,那么super()就出场了,可以实现方法的增量修改。 # A(父类)有x属性,B(子类)想添加y属性: class A(object): def __init__(self,x): self.x = x class B(A): def __init__(self,x,y): super(B,self,).__init__(x) self.y = y a = A(2) b = B(2,4) print(a.x) print(b.x,b.y)

Python学习笔记(七)

╄→гoц情女王★ 提交于 2019-11-27 03:43:24
Python学习笔记(七) 一、异常 (一)概述 (二)异常处理 (三)抛出异常 (四)用户自定义异常 二、单元测试 (一)概述 (二)基本使用 (三)测试方法 三、数值格式化 (一)正常表示 (二)浮点表示 (三)带上符号 (四)位数显示 (五)保留位数 四、随机数 五、日期与时间(datetime) (一)date (二)time (三)datetime (四)常量 (五)格式转换 (六)timedelta时间跨度处理 一、异常 (一)概述 一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 (二)异常处理 1、 格式 try : < statements > #运行try语句块,并试图捕获异常 except < name1 > : < statements > #如果name1异常发现,那么执行该语句块。 except ( name2 , name3 ) : < statements > #如果元组内的任意异常发生,那么捕获它 except < name4 > as < variable > : < statements > #如果name4异常发生,那么进入该语句块,并把异常实例命名为variable except : < statements >

Python基础总结之初步认识---class类的继承(终)。第十六天开始(新手可相互督促)

我们两清 提交于 2019-11-27 03:41:56
最近生病了,python更新要结束了,但是这才是真正的开始。因为后面要更新的是UnitTest单元测试框架,以及后续的Requests库。在后续的笔记会补充一些python的其他细节笔记。我想是这样的hhh,开始更新。 接着前面的笔记开始,子类继承父类中的方法,目的是减少代码的重写。我们看下代码: 1 class fruit(object): #定义一个类:水果类 2 def eat(self): 3 return '好吃的水果' 4 5 class apple(fruit): #定义一个苹果类,继承fruit()类 6 def __init__(self): 7 pass 8 9 Apple = apple() 10 print(Apple.eat()) #子类实例化对象可以直接用继承的父类中的eat()方法,减少代码的重写,提高效率 代码中,我们可以看到,子类apple继承了父类fruit中的方法,所以可以在实例化对象后,直接使用父类中的方法,以减少代码重写。下面是执行后的结果: 有时候,父类的方法我们不能使用,虽然方法是一样的,但是内部的逻辑还是不一样,我们需要子类有自己的特性存在。这时候我们可以在子类中,写同样的方法。需要注意的是,当父类和子类有同样的方法名的时候,调用的是:子类自己内部的方法。 我们看下单个类继承的原则: 1.从上到下:子类继承父类

Python 基础语法(三)

こ雲淡風輕ζ 提交于 2019-11-27 03:40:24
-------------------------------------------- 接 Python 基础语法(二) -------------------------------------------- 七、面向对象编程   python支持面向对象编程;类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例。   对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为 域 ;对象也可以使用属于类的函数,这样的函数称为类的方法;域和方法可以合称为类的属性。   域有两种类型--属于实例的或属于类本身;它们分别被称为实例变量和类变量。   类使用关键字 class 创建,类的域和方法被列在一个缩进块中。   类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值,这个特殊变量指对象本身,按照惯例它的名称是 self ,类似C#中的this。 class Animal: pass #empty block   __init__方法  在类的一个对象被创建时调用该方法;相当于c++中的构造函数。   __del__方法  在类的对象被销毁时调用该方法;相当于c++中的析构函数。在使用del删除一个对象时也就调用__del__方法。   Python中所有的类成员(包括数据成员)都是public的;只有一个例外