python继承

Python面向对象编程的三大特性

為{幸葍}努か 提交于 2020-01-03 19:26:02
面向对象编程的三大特性 面向对象的三大特性是指:封装、继承和多态 01对象和类 类(Class) 是现实或思维世界中的实体在计算机中的反映,它将数据以及这些 数据上的操作封装在一起。 对象(Object) 是具有类类型的变量。类和对象是面向对象编程技术中的最基本 的概念。 如何定义类? class 类(): pass 如何将类转换成对象? 实例化 是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概 念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = 类名(参数1,参数2…参数n)构成 类(Class) 是是创建实例的模板 对象(Object) 是一个一个具体的实例 # class 类名称: 定义类的方式 class Person : # 占位关键字, 什么也不做 pass print ( Person ) # <class '__main__.Person'> 存储于当前脚本的Person类 # 对象:将类实例化/具体化产生的值 personObj = Person ( ) # <__main__.Person object at 0x7f28164b04d0> # 当前脚本的Person类实例化出来的对象存储的内存地址是0x7f28164b04d0 print ( personObj ) Python中自带的类有: from datetime

python之子类继承父类时进行初始化的一些问题

只谈情不闲聊 提交于 2020-01-03 00:22:56
直接看代码: class Person: def __init__(self): self.name = "jack" class Student(Person): def __init__(self): self.school = "一中" stu = Student() print("学生的姓名是:",stu.name) 此时,程序是不能正常运行的,运行之后报错: 这是为什么呢? __init__相当于是python类的构造方法,在类进行实例化时被调用,当子类和父类中都存在构造方法时,子类中需要显示调用父类的构造方法 。需要注意的是python中构造方法是不能进行重载的,当有多个构造方法存在时,会默认调用最后一个构造方法。修改后的代码如下: class Person: def __init__(self): self.name = "jack" class Student(Person): def __init__(self): super(Student, self).__init__() self.school = "一中" stu = Student() print("学生的姓名是:",stu.name) 此时的结果就是正常的。 super(Student, self). __init__ (): 其中super关键字表示父类,Student是本类的名称

python从入门到放弃QAQ

旧街凉风 提交于 2020-01-02 18:14:12
一、python创始人及发展史 吉多·范罗苏姆,1989年python出生。 1991年,的一个python编译器诞生,他是用C语言实现的,并能够调用C语言的库文件。 2008年python推出2.6和3.0版本,由于2.6版本已经违背了龟叔创造python,简洁,优美,清晰,简单的想法,龟叔推出了自己修改的2.6和新推出的3.0,并表示在2020年不再更新2.0版本。 二、python应用范围 python可应用于,如:数据分析,组建继承,网络服务,图像处理,数值计算和科学邻域等众多领域。 三、python是一门什么样的语言 1、编程语言主要从一下几个角度进行分类,编译型和解释型,静态语言和动态语言,强类型定义语言和弱类型定义语言。 2、编译和解释的区别是什么? 编译器是把所有源程序每一条语句都编译成二进制,使机器可以拿来直接运行,程序运行速度很快。 解释器是在程序在执行时,在一条一条的解释成二进制之代码来执行,所以运行速度慢,没有编译后的运行程序快。 3、编译型语言有 C \ C++ \ GO \ Swift \ Object-c \ Pascal 解释型语言有 JavaScript \ Python \ Ruby \ PHP \ Perl \ Erlang     混合型语言有 JAVA \ C# 四、编译型和解释型优缺点 编译型 优点:编译型会有预编译的过程对代码进行优化

Python 基础语法(一)

别说谁变了你拦得住时间么 提交于 2020-01-02 17:27:07
Python的特点   1. 简单     Python是一种代表简单思想的语言。   2. 易学     Python有极其简单的语法。   3. 免费、开源     Python是FLOSS(自由/开放源码软件)之一。   4. 高层语言     使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节。   5. 可移植性     Python已被移植到很多平台,这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、   BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、   Windows CE甚至还有PocketPC。   6. 解释性     可以直接从源代码运行。在计算机内部,python解释器把源代码转换为字节码的中间形式,然后再把它翻译成计算机使用的机器语言。   7. 面向对象     Python既支持面向过程编程也支持面向对象编程。   8. 可扩展性     部分程序可以使用其他语言编写,如c/c++。   9. 可嵌入型     可以把Python嵌入到c/c++程序中,从而提供脚本功能。   10. 丰富的库    

【Python学习之旅】---多态(类的相关知识)

こ雲淡風輕ζ 提交于 2020-01-01 22:43:36
#多态反应的是执行时候的状态,不同对象调用的相同方法,调用同一个类,但运行结果不一样,属于继承的一种体现机制。class H2O: def __init__(self,name,wendu): self.name=name self.wendu=wendu def turn_ice(self): if self.wendu < 0: print('【%s】温度太低成冰了' %self.name) elif self.wendu > 0 and self.wendu <100 : print('【%s】温度太高融成水了' %self.name) else: print('【%s】温度太高成蒸汽了' %self.name)w1=H2O('水',20) #水实例化i1=H2O('冰',-2) #冰实例化z1=H2O('蒸汽',1000) #蒸汽实例化w1.turn_ice() #水调用H2O的方法i1.turn_ice() #冰调用H2O的方法z1.turn_ice() #蒸汽调用H2O的方法def fun(obj): #将重复调用的代码用函数来实现 obj.turn_ice() #任一一对象调用此方法fun(z1) #传入对象#执行结果: 【水】温度太高融成水了 【冰】温度太低成冰了 【蒸汽】温度太高成蒸汽了 【蒸汽】温度太高成蒸汽了 来源: https://www.cnblogs

python优先队列,队列和栈

六眼飞鱼酱① 提交于 2020-01-01 14:35:03
打印列表的疑问 class Node: def __str__(self): return "haha" print([Node(),Node()]) print(Node()) 输出为 [<__main__.Node object at 0x000000000311A208>, <__main__.Node object at 0x000000000311A358>] haha 打印列表调用的不是每个元素str吗?看来不是,那调用的是什么. 一个简单的实例 在自定义结点的时候,需要实现__lt__()函数,这样优先队列才能够知道如何对结点进行排序. import queue import random q = queue.PriorityQueue() class Node: def __init__(self, x): self.x = x def __lt__(self, other): return other.x > self.x def __str__(self): return "{}".format(self.x) a = [Node(int(random.uniform(0, 10))) for i in range(10)] for i in a: print(i, end=' ') q.put(i) print("=============") while q

Selenium基于Python web自动化测试框架 -- PO

徘徊边缘 提交于 2020-01-01 03:36:13
关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息、相关操作都放到一个类中,从而使具体的测试用例变成了简单的调用和验证操作。 优点:进行了拆分和分层 缺点:对于复杂的业务page层变了,case也需要去改动 PO模型的目录结构: 其中,base_page是login_page、search_page的基础。test_login调用login_page,login_page调用base_page,同理test_search。 PO代码示例: base_page.py 1 from selenium.webdriver.support.wait import WebDriverWait 2 3 ''' 4 这个类主要是完成所有页面的一些公共方法的封装 5 ''' 6 class Action(object): 7 #初始化 8 def __init__(self,se_driver): 9 self.driver = se_driver 10 11 #定义open方法 12 def open(self,url): 13 self.driver.get(url) 14 self.driver.maximize_window() 15 16 #重写元素定位的方法 17

python 子类继承父类的__init__方法

霸气de小男生 提交于 2019-12-31 00:36:43
父类A class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + self.name 子类不重写__init__,实例化子类时,会自动调用父类定义的__init__ class B(A): def getName(self): return 'B '+self.name if __name__=='__main__': b=B('hello') print b.getName() 执行 $python lei2.py name: hello B hello 但重写了__init__时,实例化子类,就不会调用父类已经定义的__init__ class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + self.name class B(A): def __init__(self, name): print "hi" self.name = name def getName(self): return 'B '+self.name if _

Python的类(class)和实例(Instance)如何操作使用

99封情书 提交于 2019-12-30 17:39:45
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 ![Python的类class和实例instance的操作方法 ](https://img-blog.csdnimg.cn/20181103213647550.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTQ4NDIy,size_16,color_FFFFFF,t_70) 仍以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。 **另外很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音

Python—多态

半世苍凉 提交于 2019-12-30 14:05:35
Python中的多态通常和继承在一起说,继承、多态、封装是Python面向对象的三大特性。 多态:声明的形参的时候是父类对象,实际运行的时候是子类对象 特性: 1、多态可以增加代码的灵活度 2、以重写和继承父类方法为前提 3、不会影响到类内部设计 下面拿例子具体给大家解释: class Pay ( object ) : def pay ( self , money ) : pass class Alipay ( Pay ) : def pay ( self , money ) : print ( "支付宝支付了{}元" . format ( money ) ) class Applepay ( Pay ) : def pay ( self , money ) : print ( "apple pay 支付了{}元" . format ( money ) ) class Person ( object ) : def consumption ( self , pay , money ) : pay . pay ( money ) alipay = Alipay ( ) apple_pay = Applepay ( ) person = Person ( ) 结果: 支付宝支付了 1000 元 apple pay 支付了 2000 元 来源: CSDN 作者: HENG302926