python笔记
文章平均质量分 89
怪弹幕
这个作者很懒,什么都没留下…
展开
-
关于python类的多态 举例理解
首先类的多态特性,要满足以下 2 个前提条件:继承:多态一定是发生在子类和父类之间;重写:子类重写了父类的方法。class WhoSay: def say(self,who): who.say()class CLanguage: def say(self): print("调用的是 Clanguage 类的say方法")class CPython(CLanguage): def say(self): print("调用的是 CP原创 2020-08-09 17:26:45 · 304 阅读 · 0 评论 -
Python私有属性和受保护的属性原理解析
前言:Python不能像Java那样使用 private 和 protected 修饰符创建私有属性和受保护的属性,但是Python有个简单的机制,能避免子类意外覆盖“私有”属性。首先定义一个Dog类:class Dog: 'Dog class' def __init__(self, age, sex, mood): self.age = age self._sex = sex self.__mood = mood一、 受保护的属性:转载 2020-08-09 17:14:27 · 1234 阅读 · 0 评论 -
Python3 装饰器理解与使用、带参数的装饰器、多个装饰器调用顺序
Python装饰器(英文decorator)装饰器的本质也是函数 为其他函数添加附加功能。装饰器的存在其实就是为了在需要添加新功能时不影响之前版本的使用的同时来增加新功能,即实现原函数无侵入的增加拓展功能,其实也是一种“偷懒”的办法。它的使用场景较多,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。Python装饰器的两大原则(1)在不修改被修饰函数源代码的同时为其增加功能(2)不修改被装饰的函数的调用方式装饰器原创 2020-08-09 17:06:10 · 1093 阅读 · 0 评论 -
python中socket模块详解
socket要使用socket.socket()函数来创建套接字。其语法如下:socket.socket(socket_family,socket_type,protocol=0)socket_family可以是如下参数:socket.AF_INET IPv4(默认)socket.AF_INET6 IPv6socket.AF_UNIX 只能够用于单一的Unix系统进程间通信socket_type可以是如下参数:socket.SOCK_STREAM 流式socket , for TCP (默原创 2020-08-09 15:16:05 · 328 阅读 · 0 评论 -
python的赋值、深拷贝和浅拷贝的区别
赋值、浅拷贝、深拷贝三种方式:在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用一般有三种方法,alist=[1,2,3,[“a”,“b”]](1)直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变b=alistprint b[1, 2, 3, [‘a’, ‘b’]]alist.append(5)print alist;print b[1, 2,原创 2020-08-09 15:05:49 · 189 阅读 · 0 评论 -
python3 闭包问题
谈谈对Python中闭包的理解Python中的闭包是一个比较模糊的概念,有很多朋友都认为不好理解,但是随着深入学习,就会发现闭包无论如何都是需要去理解的,下面我将自己对闭包的理解进行阐述,希望能够对你有所帮助 ~闭包的理解我们可以将闭包理解为一种特殊的函数,这种函数由两个函数的嵌套组成,且称之为外函数和内函数,外函数返回值是内函数的引用,此时就构成了闭包。闭包的格式下面用伪代码进行闭包格式的描述def 外层函数(参数): def 内层函数(): print("内层函数执原创 2020-08-09 10:45:01 · 169 阅读 · 0 评论 -
python3 用super解决类的钻石继承(菱形继承)的问题
Python的继承以及调用父类成员python子类调用父类成员有2种方法,分别是普通方法和super方法假设Base是基类普通继承:class Base(object): def __init__(self): print “Base init” class Medium1(Base): def __init__(self): Base.__init__(self) print “Medium1 init” class Medium2(Base): def转载 2020-08-09 10:25:49 · 504 阅读 · 0 评论 -
python 进程线程协程的区别:
进程:一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最小单位,进程拥有自己独立的内存空间,所以进程间数据不共享,开销大。线程: 调度执行的最小单位,也叫执行路径,不能独立存在,依赖进程存在一个进程至少有一个线程,叫主线程,而多个线程共享内存(数据共享,共享全局变量),从而极大地提高了程序的运行效率。协程:是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。 协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存原创 2020-08-09 09:50:35 · 117 阅读 · 0 评论 -
python3-多线程锁机制
"""线程中的锁机制""""""有两个线程A和B,A和B里的程序都加了同一个锁对象,当线程A率先执行到lock.acquire()(拿到全局唯一的锁后).线程B只能等到线程A释放锁lock.release()后(归还锁)才能运行lock.acquire()(拿到全局唯一的锁)并执行后面的代码"""使用锁lock = threading.Lock() # 生成锁对象,全局唯一lock.acquire() # 获取锁。未获取到的线程会阻塞程序,直到获取到锁才会往下执行lock.relea原创 2020-08-09 09:07:58 · 511 阅读 · 0 评论 -
python3 队列queue的用法
queue分类python3 queue分三类:先进先出队列后进先出的栈优先级队列他们的导入方式分别是:from queue import Queuefrom queue import LifoQueuefrom queue import PriorityQueueQueue 对象已经包含了必要的锁,所以你可以通过它在多个线程间多安全地共享数据。 当使用队列时,协调生产者和消费者的关闭问题可能会有一些麻烦。一个通用的解决方法是在队列中放置一个特殊的值,当消费者读到这个值的时候,终止执行。原创 2020-08-08 13:37:41 · 1052 阅读 · 0 评论 -
python 迭代器与生成器的初步认识使用
迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式,是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。递归和迭代的区别:递归是内部指针等待的一个过程,需要一直嵌套得到结果,而迭代是遍历的过程,前面的过程结束后可以进行下一项,不需要等待字符串,列表或元组对象都可用于创建迭代器for循环实际上实现了__iter__()方法生成了一个迭代器对象,然后一步步ne原创 2020-08-07 11:21:09 · 140 阅读 · 0 评论 -
python-类和对象关系及对象创建过程
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类由 类名 属性 方法 构成方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满原创 2020-08-06 16:46:17 · 533 阅读 · 0 评论 -
python-函数局部变量与全局变量
1 局部变量局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就爆掉了如果在函数内部定义与某个全局变量一样名称的局部变量,就可能会导致意外的效果,可能不是你期望的。因此不建议这样使用,这样会使得程序很不健全2 全局变量全局变量是在整个py文件中声明,全局范围内都可以访问注意 不可变类型的全局变量在内部函数调用后不会发生修改,但可变类型的变量在调用后会根据函数操作而变化3 区别作用域不同 局部变量只在该函数中有作用,在函数外调用无效全局变量在整个py中声明,原创 2020-08-06 16:27:41 · 1116 阅读 · 0 评论 -
python-字符串与列表的切片操作
Python 访问子字符串,可以使用方括号来截取字符串,如下实例:var1 = 'Hello World!'var2 = "Runoob" print ("var1[0]: ", var1[0])print ("var2[1:5]: ", var2[1:5])原创 2020-08-06 16:03:25 · 495 阅读 · 0 评论 -
python中的循环与循环嵌套、递归函数
Python 中的循环语句有 for 和 while。while 循环Python 中 while 语句的一般形式:while 判断条件(condition):执行语句(statements)……在 while … else 在条件语句为 false 时执行 else 的语句块。语法格式如下:while :<statement(s)>else:<additional_statement(s)>简单语句组类似if语句的语法,如果你的while循环体中只有一条语句原创 2020-08-06 15:51:56 · 972 阅读 · 0 评论 -
python的输入输出、基础运算及判断总结
1 格式化输入/输出:比如 你想打印一个字符串加数字 直接用字符串方式来解决a = ‘asdfasf’b = 123print(a+str(b))这样的代码不优雅,并且有时候忘了格式转换会出错如果用格式输出就好多了print(’%s, %s’ % (a,b))或者:f-string在功能方面不逊于传统的%-formatting语句和str.format()函数,同时性能又优于二者,且使用起来也更加简洁明了,因此对于Python3.6及以后的版本,推荐使用f-string进行字符串格式化。原创 2020-08-06 14:51:50 · 253 阅读 · 0 评论 -
python基础计算机语言及语法
1、变量命名:一.python变量名命名规则:1.变量名通常由字母,数字,下划线组成;2.数字不能作为变量名开头;3.不能以python中的关键字命名;4.变量名要有意义;5.不要用汉字和拼音去命名;6.变量名要区分大小写;大写与小写是不同的变量!7.推荐使用驼峰型(GuessAge或guessAge)和下划线(guess_age)来命名;8.常量通常使用大写来定义.2 python的语言类型:python是一种解释性语言,与编译型语言不同处在于:程序控制权不同编程性语言控制权在原创 2020-08-06 14:23:49 · 164 阅读 · 0 评论 -
python数据类型的属性和方法以及可变数据类型与不可变数据类型的区别
Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值多个变量赋值Python允许你同时为多个变量赋值。例如:a = b = c = 1以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。您也可以为多个对象指定多个变量。例如:a, b, c = 1, 2, “john”原创 2020-08-04 11:02:48 · 439 阅读 · 0 评论 -
python3协程的使用,yield、greenlet和gevent实现协程,及协程的一些使用环境
实现多任务的方式:多线程和多进程协程,又称微线程,在不开辟多个线程的情况下,让多个任务交替执行 ,由于协程不会开辟多个线程,所以当一个线程下有多个协程时,同一时间只会有一个协程正在执行。通过yield来实现协程代码执行到yield会暂停,然后把结果返回出去,下次启动时会在暂停的位置继续往下执行每次启动都会返回一个值,多次启动可以返回多个值,也就是yield可以返回多个值def ...原创 2020-04-19 12:44:37 · 249 阅读 · 0 评论 -
python中使用join进行线程同步
import threadingimport timelock = threading.Lock()threads = []class MyThread(threading.Thread): def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID =...原创 2020-04-14 10:41:04 · 197 阅读 · 0 评论 -
python单线程与多线程执行对比、多线程的使用
在python中,进程是一个执行中的程序,每个进程有自己的地址空间、内存、数据栈以及其他辅助数据;线程(有时候称为轻量级进程)与进程类似,但线程是在同一个进程下执行的,并且共享上下文。所以可以将线程视为在一个主进程(或主线程)中并行运行的一些‘迷你进程’。线程有一个指令指针,用于记录当前运行的上下文,当其他线程运行时,它可以被抢占也可以被临时挂起(这种做法称为让步yielding)一个进程中...原创 2020-04-14 09:55:26 · 286 阅读 · 0 评论