python继承

(转)Python多任务之线程

穿精又带淫゛_ 提交于 2019-12-01 02:08:34
https://www.cnblogs.com/yifchan/p/python-1-41.html 多任务介绍 我们先来看一下没有多任务的程序 import time def sing(): for i in range(5): print("我喜欢唱") time.sleep(1) def dance(): for i in range(5): print("我喜欢跳") time.sleep(1) def main(): sing() dance() pass if __name__ == "__main__": main() 运行结果:花了十秒钟多,只能按顺序执行,无法一起/同步执行 我喜欢唱 我喜欢唱 我喜欢唱 我喜欢唱 我喜欢唱 我喜欢跳 我喜欢跳 我喜欢跳 我喜欢跳 我喜欢跳 我们再来看一下使用了多线程的程序 import time import threading def sing(): for i in range(5): print("我喜欢唱歌") time.sleep(1) def dance(): for i in range(5): print("我喜欢跳舞") time.sleep(1) def main(): t1 = threading.Thread(target=sing) t2 = threading.Thread(target=dance)

四款工具顺利实现Python与JavaScript间的代码转换

不打扰是莪最后的温柔 提交于 2019-12-01 01:31:18
原文出处: 51CTO 选Python还是JavaScript?虽然不少朋友还在争论二者目前谁更强势、谁又拥有着更为光明的发展前景,但毫无疑问,二者的竞争在Web前端领域已经拥有明确的答案。立足于浏览器平台,如果放弃JavaScript,我们也就没什么可选择的项目了。 好吧,也许答案也不是这么绝对。JavaScript已经成为众多其它编程语言争相选择的转换目标(相关实例包括TypeScript、Emscripten、Cor以及Cheerp)。而Python则拥有庞大的追随者群体,另外强大的现有库资源则使其成为面向JavaScript的理想待转换或者说转译选项。 下面来看四个能够顺利将Python带入JavaScript世界的现有项目; 而其中一款更是凭借着灵活的双向转换能力而鹤立鸡群。 Transcrypt 这是一款新近崛起的Python到JS转译器。Transcrypt对于自身所生成代码的质量水平做出了令人印象深刻的承诺。首先,它会尽可能多地保留原始的Python代码结构,包括多重继承以及lambda表达式。Python源代码也可以直接对JavaScript中命名空间内的对象进行调用。如果大家尝试访问Python中的document.getElementById,则转换后的代码也将在JavaScript当中切实使用document.getElementById。

Python学习问题记录

非 Y 不嫁゛ 提交于 2019-11-30 19:54:27
在学习Python的是后遇到点小问题,记录下来以后忘了再来看看。 一. python2 和python3在继承父类的时候是不同的。super() 是一个特殊的函数,帮助Python将父类和子类关联起来。在Python3中,直接使用如下代码: Python3 class Father(): def __init__(self,make,kkk,aaa) ~~snip~~class Son(Father): super().__init__(make,kkk,aaa) 在Python2中有两种方法: 第一种 class Father(): def __init__(self,make,kkk,aaa) ~~snip~~class Son(Father): super(son,self).__init__(make,kkk,aaa) 第二种 class Father(): def __init__(self,make,kkk,aaa) ~~snip~~class Son(Father): Father.__init__(self,make,kkk,aaa) # 注意此处参数含self 二. 在运行过程中还遇到了一个问题。 遇到如下的报错,上网查询发现是调用对象函数的时候没有加 () . <bound method ElectricCar.get_descriptive_name of <

python异常处理

為{幸葍}努か 提交于 2019-11-30 18:59:42
Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作系统错误 WindowsError 系统调用失败

python中的多态

╄→гoц情女王★ 提交于 2019-11-30 18:41:13
所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态 ,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”。 鸭子类型:虽然我想要一只"鸭子",但是你给了我一只鸟。 但是只要这只鸟走路像鸭子,叫起来像鸭子,游泳也像鸭子,我就认为这是鸭子。 Python的多态,就是弱化类型,重点在于对象参数是否有指定的属性和方法,如果有就认定合适,而不关心对象的类型是否正确。 [Python] 纯文本查看 复制代码 ? 1 [ / align][align = left] class MiniOS( object ): [ / align][align = left] """MiniOS 操作系统类 """ [ / align][align = left] def __init__( self , name): [ / align][align = left] self .name = name [ / align][align = left] self .apps = [] # 安装的应用程序名称列表 [/align][align=left] def __str__(self): [/align][align=left] return "%s 安装的软件列表为 %s" % (self.name, str(self.apps)) [/align][align

python wsgi 详解浏览器请求过程

最后都变了- 提交于 2019-11-30 17:33:25
由于这两连天一直在看python wsgi解析request以及response的过程,所以先记录django系列博客的 第一篇 文章,过几天会将wsgi初始化过程写一篇文章。 前提: (1)本章节采用 再浏览器输入 IP:9000,后服务器的处理请求的具体过程。 (2)wsgi web服务器套接字采用select异步模式,设有select 超时间隔,并且超时后通过while循环继续 select。 (3)类的继承关系 simple server真正的类是WSGIServer,继承自HTTPServer,HTTPServer类又继承自TCPServer, TCPServer又继承自BaseServer; 与server类直接打交道的还有RequestHandler类,从最上层的WSGIRequestHandler —> BaseHTTPRequestHandler —> StreamRequestHandler —> BaseRequestHandler。 处理过程: 1、当客户端请求数据时,会触发select,返回相应的socket,如下图: r, w, e = _eintr_retry(select.select, [self], [], [], poll_interval) if self in r: print("s_handle_request_noblock")

Python——面向对象的三特征

余生颓废 提交于 2019-11-30 16:55:04
面向对象的三大特征   1.封装      封装是一种信息隐蔽技术让我们的数据更加安全,      即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。    【好处】     1. 将变化隔离;     2. 便于使用;     3. 提高复用性;     4. 提高安全性; 实例: #其实这仅仅这是一种变形操作 #类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式: class A: __N=0 #类的数据属性就应该是共享的,但是语法上是可以把类的数据属性设置成私有的如__N,会变形为_A__N def __init__(self): self.__X=10 #变形为self._A__X def __foo(self): #变形为_A__foo print('from A') def bar(self): self.__foo() #只有在类内部才可以通过__foo的形式访问到. #A._A__N是可以访问到的,即这种操作并不是严格意义上的限制外部访问,仅仅只是一种语法意义上的变形 这种自动变形的特点: 1.类中定义的__x只能在内部使用,如self.__x,引用的就是变形的结果。 2.这种变形其实正是针对外部的变形,在外部是无法通过__x这个名字访问到的。 3.在子类定义的__x不会覆盖在父类定义的__x,因为子类中变形成了:_子类名__x

Python单元测试

我是研究僧i 提交于 2019-11-30 16:04:22
是单元测试 程序开发过程中,写代码是为了实现需求。当我们的代码通过了编译,只是说明它的语法正确,功能能否实现则不能保证。 因此,当我们的某些功能代码完成后,为了检验其是否满足程序的需求。可以通过编写测试代码,模拟程序运行的过程,检验功能代码是否符合预期。 单元测试就是开发者编写一小段代码,检验目标代码的功能是否符合预期。通常情况下,单元测试主要面向一些功能单一的模块进行。 举个例子:一部手机有许多零部件组成,在正式组装一部手机前,手机内部的各个零部件,CPU、内存、电池、摄像头等,都要进行测试,这就是单元测试。 在Web开发过程中,单元测试实际上就是一些“断言”(assert)代码。 断言就是判断一个函数或对象的一个方法所产生的结果是否符合你期望的那个结果。 python中assert断言是声明布尔值为真的判定,如果表达式为假会发生异常。单元测试中,一般使用assert来断言结果。 常见的断言方法 assertEqual 如果两个值相等,则pass assertNotEqual 如果两个值不相等,则pass assertTrue 判断bool值为True,则pass assertFalse 判断bool值为False,则pass assertIsNone 不存在,则pass assertIsNotNone 存在,则pass 如何测试 首先,定义一个类,继承自unittest

三分钟搞定Python中的装饰器

有些话、适合烂在心里 提交于 2019-11-30 14:58:14
python的装饰器是python的特色高级功能之一,言简意赅得说,其作用是在不改变其原有函数和类的定义的基础上,给他们增添新的功能。 装饰器存在的意义是什么呢?我们知道,在python中函数可以调用,类可以继承,为何要必须保证不改变函数和类的定义,就使得函数有了新的功能呢?其实很好解释。 提高代码的简洁程度与封装性。如果你采用新声明一个函数,并调用原来函数的思路使得原函数功能增加了,但是一方面使用起来看着不简洁, 另一方面当另一个程序员使用你的代码时再使用这样的思路,那代码嵌套无穷无尽,会让代码变得很乱,说不定改错了哪里,动了原函数哪个参数,就会出现发现不了的bug。 我们先来看一个简单的例子。 def addworld(func): def addfun(): return func() + 'world' return addfun() @addworld def printhello(): return 'hello' print(printhello) 这段代码最后运行出来的结果是helloworld。我们发现,只要在原函数头上加一个你定义好了的增添功能的模板,以后凡是加上这个,都会增添一个功能,这提高了开发效率,也看着更加简洁。 def addnum(func): def addfun(*args, **kwargs): ret = func(*args, *

Python 入门 之 类成员

断了今生、忘了曾经 提交于 2019-11-30 14:45:44
Python 入门 之 类成员 1、类的私有成员: 私有: 只能自己拥有 以 __ 开头就是私有内容 对于每一个类的成员而言都有两种形式: - 公有成员,在任何地方都能访问 - 私有成员,只有在类的内部才能使用 私有成员和公有成员的访问限制不同: 静态字段(静态属性) - 公有静态字段:类可以访问;类内部可以访问;派生类中可以访问 - 私有静态字段:仅类内部可以访问; class Human: live = "有思想" # 类公有的属性 __desires = "有欲望" # (程序级别)类私有的属性 _desires = "有欲望" # (程序员之间约定俗成)类私有的属性 def __init__(self,name,age,sex,hobby): self.name = name self.age = age self.sex = sex # 对象的公有属性 self.__hobby = hobby # 对象的私有属性 def func(self): # 类内部可以查看对象的私有属性 print(self.__hobby) def foo(self): # 公有方法 # 类内部可以查看类的私有属性 print(self.__desires) def __abc(self): # 私有方法 print("is abc") class B(Human): pass def run