![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
qq_41386300
这个作者很懒,什么都没留下…
展开
-
python的 __new__ 和 __init__
_ _ new _ _在生成对象之前被调用,用来创建对象并返回对象,接收的是cls类参数。_ _ init _ _ 在生成对象之后被调用,用来初始化对象,接收的参数是self对象也就是: __new__先被调用,__init__后被调用,__new__的返回值(实例对象)将传递给__init__方法的第一个参数,然后__init__给这个实例对象设置一些参数。更多知识可看:https://w...原创 2019-11-06 11:41:14 · 130 阅读 · 0 评论 -
python实现斐波那契
非递归def func(n): f1=0 f2=1 i=3 while i <= n: f1,f2=f2,f1+f2 i+=1 return f2递归def func(n): if n==1: return 0 if n==2: return 1 return func(n-1)+func(n-2) python最大的递归层数是999,可...原创 2019-11-06 11:15:20 · 107 阅读 · 0 评论 -
python中*args和**kwargs的区别
1. *args可变参数,传入参数个数可变,将参数打包成元组例1:def function(*args): print(args, type(args))function(1)def function(x, y, *args): print(x, y, args)function(1, 2, 3, 4, 5)2. **kwargs关键字参数,传入参数个数...原创 2019-11-06 10:59:02 · 128 阅读 · 0 评论 -
python中类方法和静态方法
Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?首先,这三种方法都定义在类中。实例方法定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);调用:只能由实例对象调用。类方法定义:使用装饰器@classmethod。第一个参数必须是当前类...原创 2019-01-19 22:03:36 · 98 阅读 · 0 评论 -
python中with语句之安全上下文管理
with语句with open('/tmp/passwd') as f: print(f.read())具体实现class Myopen(object): def __init__(self, name, mode='r'): self.name = name self.mode = mode def __enter__(self...原创 2019-01-19 22:13:24 · 122 阅读 · 0 评论 -
python的反射机制
反射机制: 让对象告诉我们它的相关信息(对象拥有的属性和方法, 对象所属的类, 这个类是否有某个属性或者方法等等)1). 对象拥有的属性和方法li = [1,2,3,4]print(dir(li))结果:['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__'...原创 2019-01-19 22:31:01 · 101 阅读 · 0 评论 -
python多线程,线程锁
python使用多线程, 不一定运行速度快,这里引入GIL(global interpreter lock)python解释器中任意时刻都只有一个线程在执行;GIL执行过程:1). 设置一个GIL;2). 切换线程去准备执行任务(Runnale就绪状态);3). 运行;4). 可能出现的状态:- 线程任务执行结束;- time.sleep()- 需要获取其他的信息才能继续执行...原创 2019-01-19 23:39:10 · 13444 阅读 · 0 评论 -
python之进程
1. linux下创建子进程1). Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。2). 子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进...原创 2019-01-21 22:15:54 · 127 阅读 · 0 评论 -
多进程,多线程总结
1.什么是进程?什么是线程?进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。线程是进程中执行运算的最小单位,如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任...原创 2019-01-22 19:54:25 · 120 阅读 · 0 评论 -
Python内置的@property装饰器
总结:1). Python内置的@property装饰器就是负责把一个方法变成属性调用的;2). @property本身又创建了另一个装饰器@state.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作.3). @property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。源...原创 2019-01-19 20:06:00 · 337 阅读 · 0 评论 -
python中的类的魔术方法
基本的魔法方法__new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __init__ 方法 3. __new__ 决定是否要使用该 __init__ 方法,因为 __new__ 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 __new__ 没有返回实例...原创 2019-01-19 19:33:30 · 147 阅读 · 1 评论 -
python之线程,多线程
1.概念程序: /bin/firefox是一个二进制程序, (eg:python, Java程序), 是一个真实存在的, 可以看到的实体;进程: 执行的程序,执行程序的过程中产生的一系列内容,(计算机给进程分配了内存, cpu等…)线程: 是执行进程专业的总结:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基...原创 2019-01-18 22:17:16 · 122 阅读 · 0 评论 -
python之paramiko
paramiko是什么? 基于ssh用于连接远程服务器做操作:远程执行命令, 上传文件, 下载文件安装:pip3 install paramiko例:实现远程密码连接import paramiko# ssh root@172.25.254.250# 创建一个ssh对象;client = paramiko.SSHClient()# 2. 解决问题:如果之前没有;连接过的ip, 会出现...原创 2019-01-17 22:17:00 · 184 阅读 · 0 评论 -
python之difflib
1. 什么是difflib? 用来做什么?difflib为python的标准库模块,无需安装。作用时对比文本之间的差异。并且支持输出可读性比较强的HTML文档,与LInux下的diff 命令相似。在版本控制方面非常有用。2. 符号理解符号 含义‘-’ 包含在第一个系列行中,但不包含第二个。‘+’ 包含在第二个系列行中,但不包含第一个。’ ’ 两个系列行...原创 2019-01-17 21:53:13 · 2836 阅读 · 0 评论 -
Json数据
Json数据: JavaScript Object Notation, 一种轻量型数据交换格式, 便于阅读和交换数据.解码: 将json数据格式解码为python可以识别的对象;json.loads(json数据 )编码: python对象编码成为json的数据格式json.dumps(python对象数据)如下例:# 1. 简单的爬虫:from urllib.request i...原创 2019-01-17 17:27:21 · 129 阅读 · 0 评论 -
python操作excel表
Excel 是 Windows 环境下流行的、强大的电子表格应用。openpyxl 模块让 Python 程序能读取和修改 Excel电子表格文件。例如,可能有一个无聊的任务,需要从一个电子表格拷贝一些数据,粘贴到另一个电子表格中。或者可能需要从几千行中挑选几行,根据某种条件稍作修改。或者需要查看几百份部门预算电子表格,寻找其中的赤字。正是这种无聊无脑的电子表格任务,可以通过 Python 来完成...原创 2019-01-17 15:56:18 · 164 阅读 · 0 评论 -
python之类的切片与索引
python里面一切皆对象;如何给自己编写的类实现切片和索引的功能?实现索引的几个魔术方法?class Student(object): def __init__(self, name, scores): self.name = name self.scores = scores # 索引的是学生的成绩 def __getitem...原创 2019-01-11 21:56:29 · 211 阅读 · 0 评论 -
python中字体颜色的显示
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。书写格式:开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外,由于表示三个参数不同含义...原创 2019-01-11 20:50:04 · 1832 阅读 · 1 评论 -
python之协程
1. 协程概念 协程,又称微线程,纤程,英文名Coroutine。 协程的作用,是在执行函数A时,可以随时中断,去执行函数B,然后中断继续执行函数A(可以自由切换)。 但这一过程并不是函数调用(没有调用语句),这一整个过程看似像多线程, *****然而协程只有一个线程执行*****。2. 协程优势- 执行效率极高,因为子程序切换(函数)不是线程切换,由程序自身控制,没有切换线程的开...原创 2019-01-22 20:27:33 · 102 阅读 · 0 评论 -
python之socket编程
socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【操作】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)基本上,Socket 是任何一种计算机网络通讯中最基础的内容。例如当你在浏览器地址栏中输入 http://www.cnblogs.c...原创 2019-01-22 21:57:29 · 259 阅读 · 0 评论 -
TCP相关
1). TCP和UDP的区别?1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付, Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。...原创 2019-01-22 22:24:27 · 107 阅读 · 0 评论 -
Python getattr() 函数
Python getattr() 函数用于返回一个对象属性值。class A(object): bar = 1a = A()getattr(a, 'bar') # 获取属性 bar 值结果:1getattr(a, 'bar2') # 属性 bar2 不存在,触发异常Traceback (most recent call last): Fi...原创 2019-09-12 16:42:11 · 135 阅读 · 0 评论 -
Python定时任务框架apscheduler
APSchedulerAPScheduler全称为Advanced Python Scheduler,是一款轻量级的Python任务调度框架。它允许你像Cron那样安排定期执行的任务,并且支持Python函数或任意可调用的对象。官方文档:https://apscheduler.readthedocs.io/en/latest/userguide.html#basic-concepts1. 安装...原创 2019-08-16 18:38:16 · 277 阅读 · 0 评论 -
python中 int类型的数占据内存的大小
以python3版本为例说明, int 类型在python中是动态长度的。因为python3中int类型是长整型,理论支持无限大的数字,但它的结构其实也很简单, 在 longintepr.h 中定义:struct _longobject { PyObject_VAR_HEAD digit ob_digit[1];};这结构是什么意思呢,重点在于 ob_digit 它是一个数...原创 2019-05-25 22:56:09 · 5325 阅读 · 0 评论 -
python中的单例模式
参考:https://www.cnblogs.com/huchong/p/8244279.html转载 2019-05-12 12:53:37 · 76 阅读 · 0 评论 -
python两个数值交换
python交换两个值得方法非常简单,即a,b=b,a,一步操作就交换了两个值,那么这是为什么呢?原因:Python的变量并不直接存储值,而只是引用一个内存地址,交换变量时,只是交换了引用的地址。一般来说一个Python语句会对应若干字节码指令,Python的字节码是一种类似汇编指令的中间语言,但是一个字节码指令并不是对应一个机器指 令(二进制指令),而是对应一段C代码,而不同的指令的性能...原创 2019-05-25 14:25:47 · 3748 阅读 · 0 评论 -
pyhon中is和==的区别
先看一个例:上面的输出结果中为什么有的 is 和 == 的结果相同,有的不相同呢?我们来看下官方文档中对于 is 和 == 的解释。官方文档中说 is 表示的是对象标示符(object identity),而 == 表示的是相等(equality)。is 的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样,而 == 是用来检查两个对象是否相等。我们在检查 a i...原创 2019-05-25 11:48:15 · 145 阅读 · 0 评论 -
set的实现原理
参考:https://www.cnblogs.com/linshuhui/p/9580620.htmlhttps://heipark.iteye.com/blog/1743819转载 2019-05-24 18:38:57 · 2486 阅读 · 0 评论 -
装饰器练习
设计一个装饰器函数 retry,当被装饰的函数调用抛出指定的异常时,函数会被重新调用,直到达到指定的最大调用次数才重新抛出指定的异常。装饰器的使用示例如下:@retry(times=10, traced_exceptions=ValueError, reraised_exception=CustomException)def str2int(s): pass代码:def retr...原创 2019-04-17 13:45:58 · 187 阅读 · 0 评论 -
Flask-Moment本地化日期和时间
1. 为什么使用Flask-Moment?如果Web程序的用户来自世界各地,那么就思考如何让Web的世界和当地时间一致。服务器需要统一时间单位,这和用户所在的地理位置无关,所以一般会使用协调时间(Coordinated Universal Time,UTC)。但是对于用户来说他们想看到的是自己所在的当地时间,而且使用当地惯用的格式。2. Flask-Moment实现原理一个优雅的解决方法就是...原创 2019-03-21 19:21:53 · 297 阅读 · 0 评论 -
itchart
给指定好友发送消息import itchatitchat.auto_login(hotReload=True)# 根据好友昵称查找好友的信息,返回值是一个列表,有多个元素res = itchat.search_friends('xx')print(res)# 通过索引获取该好友的详细信息lz = res[0]['UserName']itchat.send('python',t...原创 2019-03-20 17:36:34 · 643 阅读 · 0 评论 -
Web框架--Flask
Flask : 是python编写的, Web应用框架;微内核的web框架; —小型网站Django: 全能型框架; — 大型网站(ERP)Tornado:安装pip install flask什么是路由?访问路径 eg:/login/什么是视图函数?告诉app当用户访问/login/这个路径时, 执行login函数(见下面代码)的内容, 最终将return的内容返回...原创 2019-02-27 17:33:02 · 186 阅读 · 0 评论 -
python之socketserver
1. 什么是 socketserver?socket并不能多并发,只能支持一个用户,socketserver 简化了编写网络服务程序的任务,socketserver是socket的再封装。socketserver在python2中为SocketServer,在python3取消了首字母大写,改名为socketserver。socketserver中包含了两种类,一种为服务类(server ...原创 2019-01-29 20:23:54 · 302 阅读 · 0 评论 -
Ananconda 虚拟环境
可以解决下面这些问题被人可以正常使用的模块, 你们使用不了;可能会用python的不同版本去写项目;项目里面用的python3.6 --------- itchat- itchat3.10- itchat4.0为什么使用Anaconda?Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候。为了解决这些问题,有不...原创 2019-01-22 22:39:25 · 926 阅读 · 0 评论 -
python之namedtuple
namedtuple的需求:t = (“kiosk”, ‘pts/0’, ‘localhost’)info = {‘kiosk’ : {‘name’: “kiosk”,‘node’: ‘localhost’}}为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造...原创 2019-01-17 15:29:41 · 93 阅读 · 0 评论 -
python之时间相关time,datetime
1. time模块时间表示的几种类型1). 时间戳import timeprint(time.time())#1547703173.14099072). 字符串的时间print(time.ctime())#Thu Jan 17 13:33:45 20193). 元组类型的时间print(time.localtime())# time.struct_time(tm_year=...原创 2019-01-17 14:05:44 · 122 阅读 · 0 评论 -
redis数据库及python操作redis
1. 什么是Redis?REmote DIctionary Server(Redis) 是一个key-value存储系统。使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(python, php, java…)。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), ...原创 2019-01-17 13:29:29 · 655 阅读 · 0 评论 -
python基础之函数
函数的定义def 函数名(): 函数体例:def hello(): print('hello') print('hello')hello()# 调用函数一个函数在没有调用函数的情况下,函数是不会被执行的运行结果:函数里面嵌套函数def fentiao(): print('is fentiao....') def python():...原创 2018-12-05 19:52:22 · 347 阅读 · 0 评论 -
python数据类型字典的练习
练习一重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和 . ;用户输入一句英文句子;打印出每个单词及其重复的次数;str=input('输入英文句子:')word_list=str.split(' ')word_dict={}for i in word_list: times=1 if i in word_dict: time...原创 2018-11-27 20:00:00 · 174 阅读 · 0 评论 -
python数据类型之字典
字典:key :value 键值对存储的一种数据结构value值可以是任意数据类型:int float long list tuple set dict1. 字典的创建d = {}print(d,type(d))输出结果:{} <class 'dict'>d = { '张三':[18,'男','玩手机'], '李四':[18,'女','修手机']}...原创 2018-11-27 19:43:32 · 241 阅读 · 0 评论