python继承

python---面向对象,class定义、构造函数、析构函数、基本继承

徘徊边缘 提交于 2019-12-07 07:36:57
python—面向对象,class定义、构造函数、析构函数、基本继承 进阶课 面向对象 1.class的基本定义 2.构造,析构函数 注意:在class类里面函数的参数第一个值必须是self,意思是指向对象本身的 1. class的基本定义 >>> class test(object): ... a = 1 #a被称为test类的属性 ... def func1(self): #func1被称为test类的方法 ... pass ... >>> >>> t = test() #实例化 >>> print t.a #调用属性 1 >>> print t.func1() #调用方法 None >>> # 我们所有的class都是object的派生类 2. 构造,析构函数 1 )构造函数(__init__称为class的构造函数与构造方法,一般做为t实例化设置初始值而存在的。即一般是为了初始化对象时将必须要用到的属性、方法做一些定义,而存在的) >>> class test(object): ... def __init__(self,arg1,arg2): #构造函数 ... self.arg1 = arg1 #对arg1进行初始的赋值,因此把arg1引入到test类的内部中 ... self.arg2 = arg2 #对arg2进行初始的赋值,因此把arg2引入到test类的内部中

Python编程实践 学习笔记

我的梦境 提交于 2019-12-07 02:58:04
Practical Programming-An Introduction to Computer Science Using Python 这本书是Jennifer Campbell等著,唐学韬(汕头大学)译,全书300页,虽内容不多,但个人认为译者比较负责,如未统一的专有词都给出英文原词,全书风格一致。 Python以简单为美,本书也类似风格,是一本实践型入门读物,不是参考手册。因不是第一次接触Python,所以本笔记较粗糙,只记录应该注意的地方。 第一章 引言 Jeannette Wing教授认为计算型思维主要包括以下内容: 强调概念化,而非程序化。计算机科学不是计算机编程。像计算机科学家一样思考,不只要会编程,还要能在多个抽象层次上进行思考。 它是人类(而非计算机)的一种思考方式。 不论何人,不论何处。当计算型思维充分融入到人们的工作学习中,并且如常识般地从我们的注意力中消失时,它就成为了现实。 第二章 你好 Python 注意浮点数的数值精度问题,否则可能冷不丁地出错,数值分析(numerical analysis,研究近似数学算法的学科)本身就是计算机科学和数学领域的最大分支。 round() 内置的四舍五入函数。 形参(parameter,函数定义时的)与实参(argument,函数调用时传入的)的区别。 第三章 字符串 pass 第四章 模块 Python不允许

python类之特殊属性和魔术方法

一曲冷凌霜 提交于 2019-12-06 21:19:07
一 python特殊属性 1 总述 属性 含义 _ name_ 类,函数,方法等的名字 _ module_ 类定义所现在的模块名 _ class_ 对象或类所属的类 _ bases_ 类的基类的元素,顺序为他们在基类列表中出现的顺序 _ doc_ 类/函数的文档字符传,如果没有定义则为None _ mro_ 类的mro,class.mro()返回 _ dict_ 类或实例的属性,可写的字典 _ dir_ 返回了类或者对象所有成员列表,dir()函数调用的是_ dir_ (),如果提供了_ dir_ (),则返回属性列表,否则尽可能从__dict__属性中收集信息 2 name 获取类和函数的名字 #!/usr/local/bin/python3.6 #coding:utf-8 class A: pass class B(A): pass def C(): pass print (A.__name__,B.__name__,C.__name__,sep='\n') 3 module 类定义所在的模块名 #!/usr/local/bin/python3.6 #coding:utf-8 class A: pass class B: pass print (A.__module__,B.__module__) #!/usr/local/bin/python3.6 #coding:utf-8

Python中的静态方法?

我的梦境 提交于 2019-12-06 18:11:27
Python中是否可以有无需初始化类即可调用的静态方法,例如: ClassName.static_method() #1楼 我认为 史蒂文实际上是对的 。 为了回答最初的问题,然后,为了建立一个类方法,只需假设第一个参数不会成为调用实例,然后确保仅从类中调用该方法。 (请注意,此答案是针对Python 3.x的。在Python 2.x中,您将在调用类本身的方法时遇到 TypeError 。) 例如: class Dog: count = 0 # this is a class variable dogs = [] # this is a class variable def __init__(self, name): self.name = name #self.name is an instance variable Dog.count += 1 Dog.dogs.append(name) def bark(self, n): # this is an instance method print("{} says: {}".format(self.name, "woof! " * n)) def rollCall(n): #this is implicitly a class method (see comments below) print("There are {} dogs

从入门到进阶,这份完整的Python学习书籍单供你收藏

点点圈 提交于 2019-12-06 17:14:21
2018-01-08 小雨 小象 AlphaGo 都在使用的 Pytho n 语言,是最接近 AI 的编程语言。 教育部考试中心近日发布了“关于全国计算机等级(NCRE)体系调整”的通知,决定自2018年3月起,在全国计算机二级考试中加入了“Python语言程序设计”科目。 9个月前,浙江省信息技术课程改革方案已经出台,Python确定进入浙江省信息技术教材,从2018年起浙江省信息技术教材编程语言将会从vb更换为Python。 小学生都开始学Python了,天呐撸,学习Python看完这些准没错。 安利一波书单: Python入门 《Python编程快速上手——让繁琐工作自动化》 作者: 【美】Al Sweigart(斯维加特) Python3编程从入门到实践 亚马逊畅销Python编程图书 本书是一本面向实践的Python编程实用指南。本书不仅介绍了Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的第一部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识,附录部分提供了所有习题的解答。 《“笨办法”学Python(第3版)》 作者: 【美】Zed A. Shaw 《

Python wsgiref 模块源码浅析

我与影子孤独终老i 提交于 2019-12-06 16:53:26
原文出处: 人世间(@-人世间-) 欢迎分享原创到 伯乐头条 SimpleHTTPServer模块提供了创建一个http服务的例子。Python web领域里却很少这么做,而是使用了另外一个协议 — WSGI协议。Python的wisiref模块提供了demo_app,来演示如何使用wsgi协议。 1 2 3 4 5 6 7 8 9 10 def demo_app ( environ , start_response ) : from StringIO import StringIO stdout = StringIO ( ) print >> stdout , "Hello world!" print >> stdout h = environ . items ( ) ; h . sort ( ) for k , v in h : print >> stdout , k , '=' , repr ( v ) start_response ( "200 OK" , [ ( 'Content-Type' , 'text/plain' ) ] ) return [ stdout . getvalue ( ) ] demo_app即是一个标准的wsgi app。它接受两个参数,一个包含cgi服务器的环境变量,另外一个参数是一个函数,这个函数也接受两个函数,一个是http状态

轻松玩转AI(从Python开始之Python3入门)

天涯浪子 提交于 2019-12-06 16:11:58
轻松玩转AI路径:   从Python开始 [链接]   数据科学 [链接]   机器学习 [链接]   深度学习——神经网络 [链接] 从Python开始: Python3入门 [链接] Python3进阶 [链接] Python3高级编程和异步IO并发编程 [链接] Python3入门 目录: 1. 简介 2. 数据类型 3. 变量、表达式、运算符 4. 流程控制语句 5. 组织结构 6. 面向对象 7. 正则表达式 8. 枚举类型 函数式编程: 9. 闭包 10. 匿名函数 11. 装饰器 1. 简介 Python的特点:简洁 Python是面向对象的语言: 把现实解释中各种各样事物的关系和特征映射到计算机中。 Python适合的领域: 爬虫 大数据与数据分析 自动化运维与自动化测试 Web开发 机器学习 作为“胶水”语言把其他语言开发的模块包装来方便使用 Python不适合的领域: 贴近硬件的代码(首选C) 移动开发:iOS/Android有各自的开发语言(ObjC,Swift/Java) 游戏开发:C/C++ Python和其他语言对比: 2. 数据类型 不可变类型(值类型):数字、字符串、元组 可变类型(引用类型):列表、集合、字典 type(Data) 可查询数据类型函数 isinstance(对象, [数据类型1, 数据类型2]) 可判断对象是否是数据类型1… 1.

python使用 HTMLTestRunner.py生成测试报告

元气小坏坏 提交于 2019-12-06 16:00:33
HTMLTestRunner.py python 2版本 下载地址: http://tungwaiyip.info/software/HTMLTestRunner.html 使用时,先建立一个”PyDev Package“,将下载下来的 HTMLTestRunner.py 文件拷贝在该目录下。 例子:testcase5_dynamic.py import unittest from dev.widget import Widget class WidgetTestCase(unittest.TestCase): def setUp(self): self.widget= Widget() def tearDown(self): self.widget.dispose() self.widget= None def testSize(self): self.assertEqual(self.widget.getSize(), (40,40), " Wrong " ) def testResize(self): self.widget.resize(100, 100 ) self.assertEqual(self.widget.getSize(), (100,100), " Wrong ") html_report.py: # coding:utf-8 from lib import

面向对象编程OOP

为君一笑 提交于 2019-12-06 14:35:33
面向对象特征:1、封装(对象具备行为能力写到方法里,便于重用和扩展,提高可维护性可扩展性) 2、继承 3、多态 class Book:#定义,Passic命名法,第一个字大写 def __init__(self,title,price,author):#类成员,写一个构造函数,下划线是预定义,逗号后面是传递初始化值 self.title = title#当前这本书的标题是你传过来的标题 self.price = price self.author = author def print_info(self):#加入一些行为 print(self.title,self.price,self.author) #以上的类只是一个模板,并不代表具体哪本书 #以下写入main方法 if __name__ == '__main__':#实例化的过程 book = Book('Python经典',price=20.0,author='Tom') book.print_info() 在console下 In[2]: import main In[3]: b = main.Book('Python') In[4]: b.price Out[4]: 0.0 In[5]: b Out[5]: <main.Book at 0x25428181f98> 想显示b具体的值 使用repr class Book:

Python线程编程的两种方式

∥☆過路亽.° 提交于 2019-12-06 14:31:22
Python中如果要使用线程的话,python的lib中提供了两种方式。一种是函数式,一种是用类来包装的线程对象。举两个简单的例子希望起到 抛砖引 玉的作用,关于多线程编程的其他知识例如互斥、信号量、临界区等请参考python的文档及相关资料。 1、调用thread模块中的start_new_thread()函数来产生新的线程,请看代码: ### thread_example.py import time import thread def timer(no,interval): #自己写的线程函数 while True: print ‘Thread :(%d) Time:%s’%(no,time.ctime()) time.sleep(interval) def test(): thread.start_new_thread(timer,(1,1)) #使用thread.start_new_thread()来产生2个新的线程 thread.start_new_thread(timer,(2,3)) if __name__==’__main__’: test() 这个是 thread.start_new_thread(function,args[,kwargs]) 函数原型,其中 function参数是你将要调用的线程函数;args是讲传递给你的线程函数的参数