python继承

Python 面向对象的基本概念

China☆狼群 提交于 2019-11-28 08:18:01
Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程。 面向对象的最主要目的是提高程序的重复使用性。我们这么早切入面向对象编程的原因是,Python的整个概念是基于对象的。了解OOP是进一步学习Python的关键。 下面是对面向对象的一种理解,基于分类。 相近对象,归为类 在人类认知中,会根据属性相近把东西归类,并且给类别命名。比如说,鸟类的共同属性是有羽毛,通过产卵生育后代。任何一只特别的鸟都在鸟类的原型基础上的。 面向对象就是模拟了以上人类认知过程。在Python语言,为了听起来酷,我们把上面说的“东西”称为对象(object)。 先定义鸟类 class Bird(object): have_feather = True way_of_reproduction = 'egg' 我们定义了一个类别(class),就是鸟(Bird)。在隶属于这个类比的语句块中,我们定义了两个变量,一个是有羽毛(have_feather),一个是生殖方式(way_of_reproduction),这两个变量对应我们刚才说的属性(attribute)。我们暂时先不说明括号以及其中的内容,记为问题1。 假设我养了一只小鸡,叫summer。它是个对象,且属于鸟类。使用前面定义的类: summer = Bird()

Python 异常处理(Try...Except)

混江龙づ霸主 提交于 2019-11-28 07:24:17
版权所有,未经许可,禁止转载 章节 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 删除文件与文件夹 try 块让你可以检测代码块中的错误。 except 块让你可以处理错误。 finally 块让你可以执行最终代码,不管 try 与 except 块的结果如何, finally 块的代码都将执行。 异常处理 当错误(或者异常)发生时,Python通常会停止执行,并报错。

python学习之类class继承、super()使用和__init__初始化

邮差的信 提交于 2019-11-28 07:17:51
类的学习、__init__学习和super方法学习 1.python中类的属性、方法学习 2. 类的实例方法、类方法、静态方法 3.类class的访问控制:单划线_与双划线__ 4.继承中的__init__ 5.super的详细使用 1.python中类的属性、方法学习 类的私有属性:以两个下划线开头的,如 __private_attrs,声明该属性为私有,不能被类的外部使用或直接访问。在类的内部方法使用时用:self.__private__attrs 类的方法:与一般函数定义不同,类的方法定义的第一个参数必须为self; 类的专有方法: 方法名 | 作用 :------: | :-------: init | 构造函数,在生成对象时调用,即初始化该方法的属性 del | 析构函数,释放对象的时候使用 … | … 参考 class person(object): tall=180 hobbies=[] def __init__(self,name,age,weight): self.name=name self.age=age self.weight=weight def information(self): print("%s age is %d ,and weigth is %s"%(self.name,self.age,self.weight)) person.hobbies

Python连载32-多线程其他属性以及继承Thread类

余生长醉 提交于 2019-11-28 06:36:55
一、线程常用属性 1.threading.currentThread:返回当前线程变量 2.threading.enumerate:返回一个包含正在运行的线程的list,正在运行的线程指的是线程启动后,结束前的状态 3.threading.activeCount:返回正在运行的线程数量,效果跟len(threading.enumer)一样 4.thr.setName:给线程设置名字 5.thr.getName:得到线程的名字。 举例: i mport _thread as thread import time def loop1(in1): print("Start loop 1 at:",time.ctime()) print("我是参数",in1) time.sleep(4) print("End loop 1 at:",time.ctime()) ​ def loop2(in1,in2): print("Start loop 2 at:",time.ctime()) print("我是参数",in1,"和参数 ",in2) time.sleep(4) print("End loop 2 at:",time.ctime()) ​ import threading def main1(): print("Starting at:",time.ctime()) t1 =

python面向对象三大特性

故事扮演 提交于 2019-11-28 05:42:26
面向对象三大特性: 封装 / 继承 / 多态 1.封装:将数据进行封装到对象中,以供其他函数进行调用 class ags: def __init__(self,k1,k2,k3): self.k1=k1 self.k2=k2 self.k3=k3 def awe(arg): print(arg.k1) print(arg.k2) print(arg.k3) obj = ags(220,333,334) awe(obj) <<<220 333 334 2.继承:提高代码复用性   1.先在自己里面找,找不到再去找父级,父级找不到再找父级的父级依次进行查找 class foo: # 父类 基类 def f1(self): print(1) class fa(foo): # 子类 派生类 def f2(self): print(2) class fc(fa): def f3(self): # 子类 派生类 print(3) obj = fc() obj.f2() # 先从自己里面去找,找不到就往父级去找 <<<2 obj.f1() <<<1 obj.f3() <<<3 第一种单继承 class foo: # 父类 基类 def f1(self): print(1) class fa: # 父类 基类 def f1(self): print(2) class fc(fa,foo): def

Python - isinstance()更深刻的理解

▼魔方 西西 提交于 2019-11-28 05:33:27
起因经过 今天翻 collections.abc 的文档时,我知道list的实例在逻辑上(因为duck typing 鸭子类型)是Container和不能hash的(因为list可变),就试下面的代码是否能行: from collections.abc import Container, Hashable print(isinstance(list(), Container)) # return true print(isinstance(list(), Hashable)) # return False 我就产生疑惑,问题1来了:list是继承于object, 而collections.abc.Container是个抽象类,isinstance为什么能正确运行?换另外一句话说,此时我的理解是根据isintance的语义来的,list并没有继承这个抽象类,why isintance() works? class list(object): ... class Container(metaclass=ABCMeta): ... 解决 查找 isinstance() 文档: Return true if the object argument is an instance of the classinfo argument, or of a (direct, indirect or

Python 模块

↘锁芯ラ 提交于 2019-11-28 05:11:22
版权所有,未经许可,禁止转载 章节 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 删除文件与文件夹 什么是模块? 模块可以认为是一个代码库。 模块是一个文件,包含了在应用程序中要使用的一组函数。 创建模块 要创建模块,只需将相关代码保存到扩展名为 .py 的文件中: 示例 将下面的代码保存在名为 mymodule.py 的文件中 def greeting(name):

Python 正则表达式(RegEx)

China☆狼群 提交于 2019-11-28 05:11:15
版权所有,未经许可,禁止转载 章节 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 删除文件与文件夹 正则表达式是组成搜索模式的字符序列。 正则表达式用于按指定的搜索模式搜索字符串。 正则表达式(RegEx)模块 Python有一个名为 re 的内置包,用来处理正则表达式。 示例 导入 re 模块: import re Python中的正则表达式 导入 re 模块后

Python JSON

为君一笑 提交于 2019-11-28 05:11:12
版权所有,未经许可,禁止转载 章节 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 删除文件与文件夹 JSON是一种用于存储和交换数据的语法。 JSON是用JavaScript对象表示法(JavaScript object notation)格式编写的文本。 Python中的JSON Python中可导入 json 模块来处理json数据。 示例 导入json模块:

python 定义并使用抽象基类

我们两清 提交于 2019-11-28 05:07:29
一、定义一个抽象基类 我们现在定义一个抽象基类 ,它的职责之一是,支持用户提供随 机挑选的无重复类。 受到“栈”和“队列”(以物体的排放方式说明抽象接口)启发,我将使用现实世界中的 物品命名这个抽象基类:宾果机和彩票机是随机从有限的集合中挑选物品的机器,选出的 物品没有重复,直到选完为止,我们把这个抽象基类命名为 Tombola。 Tombola 抽象基类有四个方法,其中两个是抽象方法。 抽象方法 1, .load(…):把元素放入容器。 2,.pick():从容器中随机拿出一个元素,返回选中的元素。 具体方法 1, .loaded():如果容器中至少有一个元素,返回 True。 2,.inspect():返回一个有序元组,由容器中的现有元素构成,不会修改容器的内容(内 部的顺序不保留)。 import abc # 自己定义的抽象基类要继承 abc.ABC。 class Tombola(abc.ABC): # 抽象方法使用 @abstractmethod 装饰器标记,而且定义体中通常只有文档字符串。 @abc.abstractmethod def load(self, iterable): """ 从可迭代对象中添加元素。 """ # 根据文档字符串,如果没有元素可选,应该抛出 LookupError。 @abc.abstractmethod def pick(self): """