python继承

Python魔术方法

我与影子孤独终老i 提交于 2019-12-05 04:58:51
------------恢复内容开始------------ 特殊属性 __name__:类,函数,方法等的名字。(实例没有) __module__:类定义所在的模块名(test1.py,test2.py就是两个不同的module) __class__:对象或类所属的类 __bases__:类的基类的元组,顺序为它们在基类列表中出现的顺序。 __doc__:类,函数的文档字符串,如果没有则为None __mro__:类的mro,class.mro()返回的结果保存在__mro__中。多继承中,非常重要。 __dict__类或实例的属性,可写的字典。 查看属性 __dir__:返回类或者对象的所有成员名称列表,dir()函数就是调用__dir__()。如果提供__dir_(),则返回属性的列表,否则会尽量从__dict__属性中收集信息。 如果dir(【obj】)参数obj包含方法__dir__(),该方法将被调用。如果参数obj不包含__dir__(),该方法将最大限度的收集参数信息。 dir()对于不同类型的对象具有不同的行为: 如果对象是模块对象,返回的列表包含模块的属性名。 如果对象是类型或者类对象,返回的列表包含类的属性名,及它的基类的属性名。 否则,返回列表包含对象的属性名,它的类的属性名和类的基类的属性名。 #animal.py class Animal: x =

Python学习笔记--面向对象

纵然是瞬间 提交于 2019-12-05 04:29:44
实现一个简单的功能,有一个Human基类,包含一个变量名字(_name)以及一个打印名字的方法(PrintName)。然后有一个Student子类,多一个变量分数(_grade),有一个获取分数的公共方法,每次获取分数后再调用一个重置分数的私有方法,并且重写了父类打印名字的方法。 class Human: _name = "" def __init__(self, _name): self._name = _name def PrintName(self): print("PrintName") class Student(Human): _grade = 0 def __init__(self, _grade, _name): self._grade = _grade self._name = _name def PrintName(self): super().PrintName() #继承父类方法,如果不需要可以不写 print("学生名:" + self._name) def PrintGrade(self): print("成绩:" + str(self._grade)) self.__ResetGrade() def __ResetGrade(self): self._grade = 0 print("重置后成绩:" + str(self._grade)) april

python学习笔记之---多线程

巧了我就是萌 提交于 2019-12-05 02:51:33
#创建线程 #encoding=utf-8 from threading import Thread #引入线程的包 import time def run(a = None, b = None) : print(a, b ) time.sleep(1) t = Thread(name = "g1",target = run, args = ("g1", "thread")) #此时线程是新建状态 print(t.getName()) #获得线程对象名称 print(t.isAlive()) #判断线程是否还活着,在start后,在执行完毕前调用isAlive()才会返回True t.start() #启动线程 t.join() #主线程等待子线程t执行结束 print("Done!") D:\>py -3 a.py g1 False g1 thread Done! #通过继承Thread类创建线程 #encoding=utf-8 import threading import time class timer(threading.Thread): #The timer class is derived from the class threading.Thread def __init__(self, num, interval): threading.Thread.__init

python --- 类的继承

混江龙づ霸主 提交于 2019-12-05 02:32:31
1、 class Animal(): def __init__(self,type,voice): self.type = type self.voice = voice def animal_type(self): print('这种动物是,{0}'.format(self.type)) def animal_voice(self): print('{0}的声音是{1}!'.format(self.type, self.voice)) class Dog(Animal): #类的继承,默认继承object。子类默认继承父类的属性和方法;继承多个父类,如果有重名的函数,先写哪个,继承哪个; # 如果多个父类初始化函数参数不一致,当调用涉及不一样参数的属性、方法时,会报错;可以重写子类的init方法 def animal_voice(self): #当子类与父类重名时,是重写该方法 print('函数的重写') def dog_foot(self): #子类自己的函数 print('{0}有四肢'.format(self.type)) animal = Animal('狗','汪汪汪') animal.animal_type() animal.animal_voice() dog = Dog('二哈','wangwangwang') dog.animal_type() dog

python类的学习笔记

限于喜欢 提交于 2019-12-04 23:33:06
python中一切皆对象,类型的本质就是类。 在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是‘类’,对象是则是这一类事物中具体的一个。 声明函数的方法: def functionName(args):   '函数文档字符串'   函数体 声明类的方法: ''' class类名: '类的文档字符串' 类体 ''' # 创建一个类 class Data: pass # 创建一个描述人的类 class Person: # 定义一个人类 role = 'person' # 角色属性都是人 def work(self): # 人都会走路,是一种方法,也叫动态属性 print("person is walking...") 类的两种作用和:属性引用和实例化 属性引用: class Person: #定义一个人类 role = 'person' #人的角色属性都是人 def walk(self): #人都可以走路,也就是有一个走路方法 print("person is walking...") print(Person.role) #查看人的role属性 print(Person.walk) #引用人的走路方法,注意,这里不是在调用 实列化:类名加括号就是 实例化,会自动触发__init__函数的运行,可以用它来为每一个实例定制自己的特征 class

python线程池(转)

纵饮孤独 提交于 2019-12-04 23:23:31
ThreadPool: #! /usr/bin/env python # -*- coding: utf-8 -*- import threadpool import time def sayhello (a): print("hello: "+a) time.sleep(2) def main(): global result seed=["a","b","c"] start=time.time() task_pool=threadpool.ThreadPool(5) requests=threadpool.makeRequests(sayhello,seed) for req in requests: task_pool.putRequest(req) task_pool.wait() end=time.time() time_m = end-start print("time: "+str(time_m)) start1=time.time() for each in seed: sayhello(each) end1=time.time() print("time1: "+str(end1-start1)) if __name__ == '__main__': main()    Futures: #! /usr/bin/env python # -*- coding:

Python语言基础07-面向对象编程基础

一笑奈何 提交于 2019-12-04 21:53:11
本文收录在 Python从入门到精通系列文章系列 1. 了解面对对象编程   活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法。   "把 一组数据结构和处理它们的方法 组成 对象(object) ,把 相同行为的对象 归纳为 类(class) ,通过 类的封装(encapsulation)隐藏内部细节 ,通过 继承(inheritance)实现类的特化(specialization)和泛化(generalization) ,通过 多态(polymorphism)实现基于对象类型的动态分派 。"   这样一说是不是更不明白了。所以我们还是看看更通俗易懂的说法,请看下图:   之前我们说过" 程序是指令的集合 ",我们在程序中书写的语句在执行时会变成一条或多条指令然后由CPU去执行。当然为了简化程序的设计,我们引入了 函数 的概念,把相对独立且经常重复使用的代码放置到函数中,在需要使用这些功能的时候只要调用函数即可;如果一个函数的功能过于复杂和臃肿,我们又可以进一步将函数继续切分为 子函数 来降低系统的复杂性。   但是说了这么多,不知道大家是否发现,所谓编程就是程序员按照计算机的工作方式控制计算机完成各种任务。但是,计算机的工作方式与正常人类的思维模式是不同的

Python学习之路1 - 基础入门

六月ゝ 毕业季﹏ 提交于 2019-12-04 21:37:44
本文内容 Python介绍 安装Python解释器 输出 变量 输入 条件判断语句 循环语句 模块讲解 三元运算 字符串和二进制的相互转化 本系列文章使用的Python版本为3.6.2 使用开发工具为Pycharm2017 一、Python介绍 Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 最新的TIOBE排行榜,Python赶超PHP占据第五,Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas 系统运维: 运维人员必备语言 金融 :量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java

2019/11/02

六眼飞鱼酱① 提交于 2019-12-04 21:19:00
1、python解释器的种类及特点 CPython 由C语言开发的 使用最广的解释器,在命名行下运行python,就是启动CPython解释器. IPython 基于cpython之上的一个交互式计时器 交互方式增强 功能和cpython一样 PyPy 目标是执行效率 采用JIT技术 对python代码进行动态编译,提高执行效率 JPython 运行在Java上的解释器 直接把python代码编译成Java字节码执行 IronPython 在微软 .NET 平台上的解释器,把python编译成. NET 的字节码 2、列举至少五个PEP8规范 1 代码编排 1.1 缩进。 4 个空格的缩进(编辑器都可以完成此功能),不使用 Tap ,更不能混合使用 Tap 和空格。 1.2 每行最大长度 79 ,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。 1.3 类和 top-level 函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。 2 文档编排 2.1 模块内容的顺序:模块说明和 docstring — import — globals&constants —其他定义。其中 import 部分,又按标准、三方和自己编写顺序依次排放,之间空一行。 2.2 不要在一句 import 中多个库,比如 import os,

Python进阶之路二

为君一笑 提交于 2019-12-04 21:10:14
Python3 错误和异常 异常处理try/except try 语句按照如下方式工作: 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。 如果没有异常发生,忽略 except 子句,try 子句执行后结束。 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。 如果一个异常没有与任何的 excep 匹配,那么这个异常将会传递给上层的 try 中。 最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。 import sys try: f = open('myfile.txt') s = f.readline() i = int(s.strip()) except OSError as err: print("OS error: {0}".format(err)) except ValueError: print("Could not convert data to an integer.") except: print("Unexpected error:", sys.exc_info()[0]) raise try/except...else for arg