-
Python深浅拷贝是什么
一、浅拷贝 浅拷贝是对一个对象的顶层拷贝,通俗地讲就是:拷贝了引用,并没有拷贝内容。 a=[1,2,3] print(id(a)) b=a print(b) print(id(b)) a.append(4) print(a) print(b) 运行结果为: 1965053928072 [1,2,3] 1965053928072 [1,2,3,4] [1,2,3,4] 二、深拷贝 深拷贝是对于一个对…- 430
- 0
-
Python中包如何发布?
Python中包如何发布? 1.myModule目录结构体如下: ./ setup.py __init__.py test.py sub_A/ __init__.py a.py sub_B/ __init__.py b.py 2.编辑setup.py文件 py_modules需指明所需包含的py文件 fromdistutils.coreimportsetup setup(name="Se…- 511
- 0
-
Python中包如何嵌套
_ _init_ _.py文件 _ _init_ _.py控制着包导入行为。 _ _init_ _.py为空,意味着仅仅把这个包导入,不会导入包中的模块。 在_ _init_ _.py文件中,定义一个_ _all_ _变量,它控制着from包名import*是导入的模块。 可以在_ _init_ _.py文件中编写内容,当导入时,这些语句就会被执行。 __init__.py模块 __all__=[…- 647
- 0
-
Python中的多态是什么
多态的概念其实不难理解,它是指对不同类型的变量进行相同的操作,它会根据对象(或类)类型的不同而表现出不同的行为。 事实上,我们经常用到多态的性质,比如: >>>1+2 3 >>>'a'+'b' 'ab' 可以看到,我们对两个整数进行+操作,会返回它们的和,对两个字符进行相同的+操作,会返回拼接后的字符串…- 506
- 0
-
python中重写与调用方法是什么
重写父类方法与调用父类方法 1、重写父类方法 所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法。 classCat(object): defsayHello(self): print("Hello:Cat") classBosi(Cat): defsayHello(self): print("Hello:Bosi") …- 454
- 0
-
Python中类的继承是什么
一、继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产,在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承足够,如下如所示: 二、继承的示例 classCat(object): def__init__(self,name,color="白色"): self.name=…- 520
- 0
-
python删除对象的方法是什么
_ _del_ _()方法 创建对象后,python解释器默认调用_ _init_ _()方法; 当删除一个对象时,python解释器也会默认调用一个方法,这个方法为_ _del_ _()方法 classPerson(object): #初始化方法,创建对象会被自动调用 def__init__(self,name): print("__init__方法被调用") self.__…- 1.1k
- 0
-
一个例子解释python装饰器
谈到python装饰器,一般都先提到函数式编程,但是其实运用python装饰器,和知不知道他是函数式编程没啥关系。 例子 defdecorator(func): defwrapper(*args,**kwargs): print('我是装饰器呦') returnfunc(*args,**kwargs) returnwrapper @decorator deftest(): pr…- 405
- 0
-
10分钟用Python编写贪吃蛇小游戏
首先看一下编写贪吃蛇小游戏的主要思路 废话不多说,我们直接来讲解如何利用Python进行贪吃蛇的编写吧 1.调用库以及初始设置 1.1 调用第三方库 Python与其他语言很不一样的一点在于他有很多的第三方库可以调用。在Python编写游戏时,pygame是一个很简单上手的第三方库,可以通过pip直接安装。安装方法在之前的文章中已经讲过,就不再赘述。想要了解更多pygame功能的朋友也可以查阅官方…- 567
- 0
-
详说Python风格的函数分配参数
一、分配参数的定义 参数收集就是在定义函数时不能确认参数个数,用收集参数将调用时不确定数量的实参存放到收集参数的元组中。分配参数与此过程相反,它不是在定义函数形参时使用星号(1个或2个),而是在调用函数传递实参时使用星号(1个或2个)来传递多个参数。 二、分配参数的使用 1.使用1个星号的分配参数 使用1个星号的实参时,实参为一个元组、列表、字典或集合,该实参内的元素将按参数顺序传递给函数,但由于…- 386
- 0
-
python中事件处理的方法
一、概述 一个 GUI 应用整个生命周期都处在一个消息循环 (eventloop) 中。 它等待事件的发生, 并作出相应的处理。Tkinter 提供了用以处理相关事件的机制. 处理函数可被绑定给各个控件的各种事件。 widget.bind(event, handler) 如果相关事件发生, handler 函数会被触发 , 事件对象event 会传递给 handler 函数。二 二、鼠标和键盘事件…- 503
- 0
-
python中的装饰器的使用实战
1、装饰器的理解 装饰器是将一个函数镶嵌在另一个函数中进行重复使用的目的,不改变其结构,增加函数的使用方式,但是不用写过多冗余的代码; 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。 通常用到的功能:1.引入日志;2.函数执行时间统计;3.执行函数前预备处理;4.执行函数后清理功能;5.权限校验;6.缓存 2、实现原…- 413
- 0
-
案例详解:Python类继承机制
下面实现一个类继承的小程序,下面一边结合代码一边介绍相关继承的知识。例子以车、汽车为例,车为父类、汽车为子类。 一、定义父类Vehicle classVehicle(): def__init__(self,wheelcount,power):#构造方法,参数有轮子数和动力 self.wheelcount,self.power,self.totaldistance=wheelcount,power,…- 366
- 0
-
神秘而强大的Python生成器精讲
一、 生成器(generator)概念 生成器是一个特殊的迭代器,它保存的是算法,每次调用next()或send()就计算出下一个元素的值,直到计算出最后一个元素,没有更多的元素时,抛出StopIteration。生成器有两种类型,一种是生成器表达式(又称为生成器推导),一种是生成器函数。 二、 生成器表达式 生成器表达式是通过一个Python表达式语句去计算一系列数据,但生成器定义的时候数据并没…- 270
- 0
-
加速Python程序运行
python是一门简洁、高效的语言,这也是它的设计理念!下面我们来看一下如何加速我们的python。 以下举例说明 一、分析代码运行时间 第1式:测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式:测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式:按调用函数分析代码运行时间 平凡方法 快捷方法(jupyter环境)- 328
- 0
-
如何利用Python进行垃圾分类
1 引言 七月了,大家最近一定被一项新的政策给折磨的焦头烂额,那就是垃圾分类。《上海市生活垃圾管理条例》已经正式实施了,相信还 是有很多的小伙伴和我一样,还没有完全搞清楚哪些应该扔在哪个类别里。感觉每天都在学习一遍垃圾分类,真令人头大。 听说一杯没有喝完的珍珠奶茶应该这么扔 1、首先,没喝完的奶茶水要倒在水池里 2、珍珠,水果肉等残渣放进湿垃圾 3、把杯子要丢入干垃圾 4、接下来是盖子,如果是带盖…- 629
- 0
-
Python如何使用tkinter编写GUI程序
@(Python3中tkinter写的HTTP测试工具代码支持正则表达式和XPATH) 程序非常简单,暂时只支持GET方法,使用内置库tkinter编写GUI窗口,在Mac下运行效果图如下,windows运行需要更改控件宽度高度等控制参数才能很好的显示。 效果图(使用XPATH匹配房天下网站) 代码如下,需要安装requests和lxml第三方库 相关推荐:《Python视频教程》 importt…- 323
- 0
-
python如何将数据渲染到docx文档指定位置
超简单Python将指定数据插入到docx模板渲染并生成 最近有一个需求,制作劳动合同表,要从excel表格中将每个人的数据导入到docx劳动合同中,重复量很大,因此可以使用python高效解决。为了让模板内容不变动,这里使用了类似jinja2的渲染引擎,使用 插值表达式把数据插入进去。也可以使用{% %}循环,条件语法等。 docx模板如下(在需要插值的位置填充 表达式): 相…- 357
- 0
-
Python多继承C3算法解析
Python多继承MRO 在Python2.1中,采用了经典类,使用深度优先算法解析。 Python2.2中,引入了新式类,使用深度优先算法和广度优先算法。 在Python2.3以后的版本中,经典类和新式类共存,使用了DFS算法和C3算法。 Python2中的经典类 classA(object): pass Python3的新式类 classA: pass C3算法 In computing, t…- 304
- 0
-
Python中的并行和并发是什么
并行和并发 无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务。 并发是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发,(并行也属于并发),简单的可以理解为快速在多个线程来回切换,感觉好像同时在做多个事情。 只有具备多个cpu才能实现并行,单核下,…- 365
- 0
-
Python中Thread子类如何封装
Thread子类的封装 通过使用threading模块能完成多任务的程序开发,为了让每个线程的封装性更完美,所以使用threading模块时,往往会定义一个新的子类class,只要继承threading.Thread就可以了,然后重写run方法。 #coding=utf-8 importthreading importtime classMyThread1(threading.Thread): d…- 338
- 0
-
Python中的threading模块是什么
threading提供了一个比thread模块更高层的API来提供线程的并发性。这些线程并发运行并共享内存。 下面来看threading模块的具体用法: 一、Thread的使用,目标函数可以实例化一个Thread对象,每个Thread对象代表着一个线程,可以通过start()方法,开始运行。 这里对使用多线程并发,和不适用多线程并发做了一个比较: 首先是不使用多线程的操作: 代码如下: #!/us…- 374
- 0
-
Python中fock()函数如何使用
首先,在python中我们要实现多进程,有两个模块可以用:1)os中的fork()函数2)multiprocessing模块 fork()函数 函数原型: Helponbuilt-infunctionforkinmoduleposix: fork(...) fork()->pid Forkachildprocess. Return0tochildprocessandPIDofchildtop…- 452
- 0
-
Python中的协程是什么
协程 在python GIL之下,同一时刻只能有一个线程在运行,那么对于CPU计算密集的程序来说,线程之间的切换开销就成了拖累,而以I/O为瓶颈的程序正是协程所擅长的: Python中的协程经历了很长的一段发展历程。其大概经历了如下三个阶段: 1.最初的生成器变形yield/send; 2.引入@asyncio.coroutine和yield from; 3.在最近的Python3.5版本中引入a…- 374
- 0