搜索到与相关的文章
Python

浅析Python3中的对象垃圾收集机制

###概述GC作为现代编程语言的自动内存管理机制,专注于两件事:1.找到内存中无用的垃圾资源2.清除这些垃圾并把内存让出来给其他对象使用。在Python中,它在每个对象中保持了一个计数器,用于记录指向该对象的的引用的个数。一旦这个计数器为0时,则立即回收该对象,对象占用的内存空间将被释放。引用计数我们可以利用简单的变量引用和销毁窥见引用计数过程。增加引用计数增加引用计数的方式多种,即对象进行引用,那么计数器都会+1#创建第一个引用a=3#用其他变量名引用b

系统 2019-09-27 17:56:09 1342

Python

python3 property装饰器实现原理与用法示例

本文实例讲述了python3property装饰器实现原理与用法。分享给大家供大家参考,具体如下:学习python的同学,慢慢的都会接触到装饰器,装饰器在python里是功能强大的语法。装饰器配合python的魔法方法,能实现很多意想不到的功能。废话不多说,如果你已经掌握了闭包的原理,代码的逻辑还是可以看明白的,咱们直接进入正题。property的意义@property把一个类的getter方法变成属性,如果还有setter方法,就在setter方法前面加

系统 2019-09-27 17:55:44 1342

Python

python单线程下实现多个socket并发过程详解

先看服务端的代码importsys#importsocketimporttimeimportgeventfromgeventimportsocketfromgeventimportmonkeymonkey.patch_all()#类似于python中的黑魔法,把很多模块的阻塞的变成非阻塞的,比如socket中的rece和send都变#为不阻塞了defserver(port):s=socket.socket()s.bind(("127.0.0.1",port

系统 2019-09-27 17:55:42 1342

Python

python实现多线程端口扫描

一个简易的TCP端口扫描器,使用python3实现。需求:扫描目标网站开放哪些端口号,将所有开放的端口号输出。分析:使用socket连接,如果连接成功,认为端口开放,如果连接失败,认为端口关闭(有可能端口开放但连接失败,这里简单认为端口不开放)使用到的库:socket,threading过程:先定义一个函数,对给定的(ip,port)进行扫描,看其是否能连接成功。deftcpPortScan(ip,port,openPort):sock=socket.so

系统 2019-09-27 17:55:41 1342

Python

python中的*args和**kwargs

python支持可变参数:可以使用*args、**kwargs实现*args是可变的positionalarguments列表,是一个tuple。**kwargs是可变的keywordarguments列表,是一个dict。*args必须位于**kwargs之前,因为positionalarguments必须位于keywordarguments之前。*args、**kwargs的使用:函数定义:是一个将参数pack的过程函数调用:将参数unpack例子:d

系统 2019-09-27 17:55:35 1342

Python

python命名规范

阅读更多文件名全小写,可使用下划线包应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。模块与包的规范同。如mymodule。类总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。函数&方法函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。*注意*:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。函数和方法的参数总使

系统 2019-09-27 17:55:28 1342

Python

Python之路【第十六篇】:Python并发编程|进程、线程

一、进程和线程进程假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。是不是在程序A读取数据的过程中,让程序B去执行,当程序A读取完数据之后,让程序B暂停,然后让程序A继续执行?当然没问题,但这里有一个关键词:切换既然是切换,那么这就涉及到了状态的保存,状态的恢复,加上程序A与程序B所需要的系统资源(内存,硬盘,键盘等等)是不一样的。自然

系统 2019-09-27 17:55:24 1342

Python

老生常谈python之鸭子类和多态

一、什么是多态<1>一种类型具有多种类型的能力<2>允许不同的对象对同一消息做出灵活的反应<3>以一种通用的方式对待个使用的对象<4>非动态语言必须通过继承和接口的方式来实现二、python中的多态<1>通过继承实现多态(子类可以作为父类来使用)<2>子类通过重载父类的方法实现多态classAnimal:defmove(self):print('animalismoving....')classDog(Animal):passdefmove(obj):ob

系统 2019-09-27 17:55:15 1342

Python

使用python连接mysql数据库之pymysql模块的使用

安装pymysqlpipinstallpymysql2|0使用pymysql2|1使用数据查询语句查询一条数据fetchone()frompymysqlimport*conn=connect(host='127.0.0.1',port=3306,user='root',password='123456',database='itcast',charset='utf8')#创建游标c=conn.cursor()#执行sql语句c.execute("selec

系统 2019-09-27 17:55:11 1342

Python

跟老齐学Python之网站的结构

很早很早的时候,computer这个东西习惯于被称之为计算机,因为它的主要功能是完成一些科学计算的东西,我记得自己鼓捣它的时候,就是计算,根本就没有想到它有早一日还可以用来做别的。后来另外一个名字“电脑”逐渐被人们接收了,特别是网络发展起来之后,computer这个东西,如果要不上网,简直就不知道干什么。而且,现在似乎还有一个趋势,越来越强化网络的作用,而本机的功能虽然硬件在提升,可以做的事情感觉不多了。不管怎么,网络是离不开了。上网,连上网之后干什么呢?

系统 2019-09-27 17:54:59 1342