python继承

Python 介绍

南笙酒味 提交于 2019-12-02 18:33:45
章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(String) Python 运算符 Python 列表(list) Python 元组(Tuple) Python 集合(Set) Python 字典(Dictionary) Python If … Else Python While 循环 Python For 循环 Python 函数 Python Lambda Python 类与对象 Python 继承 Python 迭代器(Iterator) Python 模块 Python 日期(Datetime) Python JSON Python 正则表达式(RegEx) Python PIP包管理器 Python 异常处理(Try…Except) Python 打开文件(File Open) Python 读文件 Python 写文件 Python 删除文件与文件夹 Python是什么? Python是一种流行的编程语言。它由Guido van Rossum创建,并于1991年发布。 Python使用场景: web开发(服务器端) 软件开发 数学计算 系统脚本 近期Python在人工智能领域大放异彩 Python能做什么?

python学习笔记之---重写与重载

大憨熊 提交于 2019-12-02 18:13:39
重写 重写是指子类重写父类的成员方法。子类可以改变父类方法所实现的功能, 但子类中重写的方法必须与父类中对应的方法具有相同的方法名。也就是说 要实现重写,就必须存在继承。 #重写:子类实现父类的同名方法。 实例1: class Person(): def print_info(self): print("*************") class ChinesePerson(Person): def print_info(self): #子类重写父类的print_info方法 print("________") p= ChinesePerson() #子类实例 p.print_info() #子类调用重写方法 p1=Person() #父类实例 p1.print_info() #父类调用重写方法 E:\>py -3 a.py ________ ************* 实例2: class Person(): def __init__(self,name): self.name = name def get_name(self): return self.name def set_name(self,name): if len(name)>5: return self.name = name class ChinesePeople(Person): def __init__

python面向对象

半腔热情 提交于 2019-12-02 17:53:20
编程语言的分类 编程语言的分类大体可分为三类, 面向对象、面向过程、面向对象oop。 面向机器:它是抽象成机器指令,这样机器容易理解,代表为汇编语言。 面向过程:做一件事情,排出一个步骤,第一步做什么,第二步做什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理。它特点是问题规模小,可以步骤化,按部就班的处理。代表语言 C语言 。 面向对象oop:随着计算机需要解决的问题的规模不断扩大,情况越来越复杂,需要很多人,很多部门协作,面向过程编程不太适合了。这个面对相对编程就出来了。代表语言 :c++,Java,Python等 。 面向对象 面向对象适合大规模软件,是一种认识世界,分析世界的方法论,它将万事万物抽象为类。 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。用计算机语言来描述类,就是 属性和方法 的集合。 对象instance、object 对事是类的具象,是一个实体,对于我们每个人这个个体,都是抽象概念人类的不同实体。 比如:你吃鱼,你就是对象,鱼也是对象,而吃是动作。你是具体的人,是具体的对象,你属于人类,人类是个抽象的概念,是无数具体的个体的抽象。鱼也是具体的对象,就是你吃的这一条具体的鱼,这条鱼属于鱼类,是无数的鱼抽象出来的概念。吃是动作,也是操作,也是方法,这个吃是你的动作,也就是人类具有的方法,如果反过来,鱼吃人

python继承多态(第三节)

旧城冷巷雨未停 提交于 2019-12-02 16:46:52
继承机制: 最大的好处就是子类获得父类的全部功能 class Animal(object): def run(self): print( "Animal is running" ) class Dog(Animal): pass class Duck(Animal): pass dog = Dog() dog.run() duck = Duck() duck.run() 也可以对子类增加一些方法 class Animal(): def run(self): print( " 动物会跑 " ) class Dog(Animal): def eat(self): print( " 吃吧 " ) class Duck(Animal): pass dog = Dog() dog.run() dog.eat() 派生类可以继承父类的公有成员,但是不能继承其私有成员。( 可以使用super()或者基类名.方法名()的方式强制继承父类 ) class Parent(object): def public(self): print("parent public") def __private(self): print("parent private") def __int__(self): print("父类构造器") class Son(Parent): def __int__(self):

Python模块学习 ---- pickle, cPickle 对象序列化/反序列化

那年仲夏 提交于 2019-12-02 16:44:44
上次学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对象的序列化。所以直接使用marshal来序列化/反序列化可能不是很方便。还好,python标准库提供了功能更加强大且更加安全的pickle和cPickle模块。   cPickle模块是使用C语言实现的,所以在运行效率上比pickle要高。但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们不需要从这些类型中继承。)。cPickle和pickle的序列化/反序列化规则是一样的,我们可以使用pickle序列化一个对象,然后使用cPickle来反序列化。同时,这两个模块在处理自引用类型时会变得更加“聪明”,它不会无限制的递归序列化自引用对象,对于同一对象的多次引用,它只会序列化一次。例如: 1 import marshal , pickle 2 3 list = [ 1 ] 4 list . append ( list ) 5 byt1 = marshal . dumps ( list ) # 出错, 无限制的递归序列化 6 byt2 = pickle . dumps ( list ) # No problem pickle的序列化规则   Python规范(Python

Python的类与对象

我的未来我决定 提交于 2019-12-02 16:13:58
之前学过的C++和Java都是面向对象的编程语言,因此对Pytho的面向对象的学习会更加轻松一点,这里记录一些python面向对象的基本用法 # 类定义 class People: # 定义基本属性 name = '' age = 0 # 定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 # 定义构造方法 def __init__(self, n, a, w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 说: 我 %d 岁。" % (self.name, self.age)) # 但继承实例 class Student(People): grade = '' def __init__(self, n, a, w, g): # 调用父类的构造函数 People.__init__(self, n, a, w) self.grade = g # 覆写父类的方法 def speak(self): print("%s 说: 我 %d 岁了,我在读 %d 年级" % (self.name, self.age, self.grade)) # 另一个类,多继承之前的准备 class Speaker: topic = '' name = '' def __init__

(转)python自动化测试之异常及日志

大兔子大兔子 提交于 2019-12-02 15:01:46
为了保持自动化测试用例的健壮性,异常的捕获及处理,日志的记录对掌握自动化测试执行情况尤为重要,这里便详细的介绍下在自动化测试中使用到的异常及日志,并介绍其详细的用法。   一、日志     打印日志是很多程序的重要需求,良好的日志输出可以帮我们更方便的检测程序运行状态。Python标准库提供了logging模块,切记Logger从来不直接实例化,其好处不言而喻,接下来慢慢讲解Logging模块提供了两种记录日志的方式。 1.logging之模块级别的函数方式记录日志: import logging #设置日志,包括filename、level、format、filemode、stream,其中format属性极其丰富,详情可查看API文档,这里只做简要介绍 logging.basicConfig(level = logging.INFO,   format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s',   datefmt = "%Y/%m%d %H%M%S",   filename = "log.txt") #消息级别,五级 logging.debug("芹泽多摩雄") logging.info("真") logging.warning("男") logging.error("人") logging

Python_面向对象

纵饮孤独 提交于 2019-12-02 12:31:19
一、内容回顾   成员   class Person:     def __init__(self, name, num, gender, birthday):       # 成员变量       self.name = name       self.num = num       self.gender = gender       self.birthday = birthday       # 对象来访问(成员方法)(实例方法)       def eat(self,name):         print("%s吃东西"%self.name)           ### 成员:在类定义的变量和方法都被称为成员       变量:         1、成员变量(实例变量)、字段         2、类变量(静态变量)       方法:         1、成员(实例)方法,加了self的,调用的时候,必须用对象去访问         2、类方法 @classmethod def clsMethod(cls) ## 类方法:第一个参数传递的是类名         3、静态方法,当你的方法不需要传递当前类的对象。语法规则:在方法上面加@staticmethod        ------>>>>>说一说,静态方法、类方法和实例方法的区别       属性:        

Python 面向对象

拟墨画扇 提交于 2019-12-02 12:26:02
面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员: 类变量或者实例变量, 用于处理类及其实例对象的相关的数据。 方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 局部变量: 定义在方法中的变量,只作用于当前实例的类。 实例变量: 在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。 继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化: 创建一个类的实例,类的具体对象。 方法: 类中定义的函数。 对象: 通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 self代表类的实例,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的 第一个参数名称 ,

python学习

混江龙づ霸主 提交于 2019-12-02 12:23:08
day1 turtle pos()获取位置,获得的是一个元组,可以通过索引获取x y值 使用sqrt要import math,然后math.sqrt 也可以 from math import sqrt 就能直接使用sqrt了 day3 厘米和英尺转换可以添加上break但还存在问题,后期解决(已解决) 个人所得税的算法,可理解可不理解 print( '对应的等级是: ', grade) print可以这么串联,因为grade是字符串,若是数字则需要print( '对应的等级是: ', str(grade)) shift+tab删除多行的tab day4 判断输入字符类型存疑,后续解决 day6 def is_prime(num): for factor in range(2, num): if num % factor == 0: return False return True if num != 1 else False最后一行存疑 再看看下面这段代码,我们希望通过函数调用修改全局变量 a 的值,但实际上下面的代码是做不到的。 def foo(): a = 200 print(a) # 200 if __name__ == '__main__': a = 100 foo() print(a) # 100 在调用 foo 函数后,我们发现 a 的值仍然是100