对于日常开发者来讲很少会使用到本章节的内容,但是对框架作者等是必备知识,同时也是高频的面试常见问题。 1.线程安全 线程安全是多线程或多进程编程中的一个概念,在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。 线程安全的问题最主要还是由线程切换导致的,比如一个房间(进程)中有10颗糖(资源),除此之外还有3个小人(1个主线程、2个子线程),当小人A吃了3颗糖后被系统强制进行休息时他认为还剩下7颗糖,而当小人B工作后又吃掉了3颗糖,那么当小人A重新上岗时会认为糖还剩下7颗,但是实际上只有4颗了。 上述例子中线程A...

  oELtfgAoDdFJ   2023年11月02日   22   0   0 Python

List是Python中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作)。 在Python中,向List添加元素,方法有如下4种方法(append(),extend(),insert(),+加号) 1.append()追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型。 此元素如果是一个list,那么这个list将作为一个整体进行追加,注意append()和extend()的区别。 list1=['a','b'] list1.append('c') list1 ['a','...

  oELtfgAoDdFJ   2023年11月02日   62   0   0 Python

1.使用forkeyindict遍历字典 可以使用forkeyindict遍历字典中所有的键 x={'a':'A','b':'B'} forkeyinx: print(key) 输出结果 a b 2.使用forkeyindict.keys()遍历字典的键 字典提供了keys()方法返回字典中所有的键 keys book={ 'title':'Python入门基础', 'author':'张三', 'press':'机械工业出版社' } forkeyinbook.keys(): print(key) 输出结果 title author press 3.使用forvaluesindi...

  oELtfgAoDdFJ   2023年11月02日   18   0   0 Python

Python是一种广泛使用的编程语言,可以轻松地帮助我们完成许多任务。Python可以用于网络开发和软件开发。 在这篇文章中,我们将研究如何在Python中创建一个包。包是一个可重复使用的代码文件,我们可以通过从包中导入主文件并使用这些文件中定义的其余函数和定义来实现多种目的。 让我们创建一个带有一些函数、定义、类和对象的新Python包。首先,我们将创建一个新的文件夹,pythonPrograms。 在这个文件夹中,我们将创建另一个名为mathFunctions的文件夹。 一旦我们创建了我们的文件夹,我们将通过创建一个__init__.py文件让Python知道这是一个包。我们将创建sum,...

  oELtfgAoDdFJ   2023年11月02日   91   0   0 Python

classPerson(object): def__init__(self): pass definfo(self): print('我是person类中的info方法') 1.getattr()方法 这个方法是根据字符串去某个模块中寻找方法 instantiation=reflect.Person()先实例化 f=getattr(instantiation,'info')使用getattr函数去寻找字符串的同名方法 f()调用方法 输出结果:我是person类中的info方法 2.hasattr()方法 这个方法是根据字符串去判断某个模块中该方法是否存在 instantiation=r...

  oELtfgAoDdFJ   2023年11月02日   55   0   0 Python

一、默认参数 定义函数的时候,还可以有默认参数。 例如Python自带的int()函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数: >>>int('123') 123 >>>int('123',8) 83 int()函数的第二个参数是转换进制,如果不传,默认是十进制(base=10),如果传了,就用传入的参数。 可见,函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。 我们来定义一个计算x的N次方的函数: defpower(x,n): s=1 whilen>0: n=n...

  oELtfgAoDdFJ   2023年11月02日   35   0   0 Python

1、print() print()函数的作用是输出数据到控制台,就是打印在你能看到的界面上。 2、return return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。 return作为脚本单独运行时则需要print函数才能显示,但是在交互模式下,return的结果会自动打印出来 注:return是返回值,且return语句块后面的代码是不执行的。 没有return语句: >>>a=1 >>>b=2 >>>deffunc(x,y): z=x+y >>>print(fu...

  oELtfgAoDdFJ   2023年11月02日   41   0   0 Python

1、Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别) 答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。 浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数} 深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数} 2、Python里面match()和search()的区别? 答:re模块中match(pat...

  oELtfgAoDdFJ   2023年11月02日   60   0   0 Python

一.subprocess模块 subprocess是Python2.4中新增的一个模块,它允许你生成新的进程,连接到它们的input/output/error管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如: os.system os.spawn 1.subprocess模块中的常用函数 函数 描述 subprocess.run() Python3.5中新增的函数。执行指定的命令,等待命令执行完成后返回一个包含执行结果的CompletedProcess类的实例。 subprocess.call() 执行指定的命令,返回命令执行状态,其功能类似于...

  oELtfgAoDdFJ   2023年11月02日   26   0   0 Python

一、总结 一句话总结: 返回多个值:defmin_max(list1):returnmin(list1),max(list1) 赋值多个值:min1,max1=min_max([1,3,5]) 1、b,=tuple2怎么理解? 当tuple2是元组或者列表,并且里面只有一个元素的时候,这样变量b可以取得这个tuple2里面的元素,而不是tuple2本身 2、接收元组或列表的返回值? 元组多个元素赋值:tuple1=(1,23,456)a,b,c=tuple1元组单个元素赋值:tuple2=(1,)b,=tuple2列表单个元素赋值:list1=[1,]b,=list1 3、函数返回元组实例...

  oELtfgAoDdFJ   2023年11月02日   39   0   0 Python

1.HTTP是什么? http是超文本传输协议用来在web浏览器和网站服务器之间传递数据信息,http以明文的方式发送内容,不提供任何方式的数据加密,如果攻击者截获了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决http协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,https在http的基础上加入了SSL协议,ssl依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 2.HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛...

  oELtfgAoDdFJ   2023年11月02日   24   0   0 Python

path[pɑ:θ]路径unexpected[ˌʌnɪkˈspektɪd]不期望的 class[klɑ:s]类usage[ˈju:sɪdʒ]使用 public['pʌblik]公共的,公用的version[ˈvɜ:ʃn]版本 private['praivit]私有的,私人的author[ˈɔ:θə®]作者 static['stætik]静的;静态的;静止的int[int]整型 void[vɔid]空的,没有返回值的char[tʃɑ:]字符型 main[mein]主要的,重要的string[striŋ]字符串类型 system['sistəm]系统float[fləut]单精度浮点类型 out[...

  oELtfgAoDdFJ   2023年11月02日   20   0   0 Python

一.介绍 fire是python中用于生成命令行界面(CommandLineInterfaces,CLIs)的工具,不需要做任何额外的工作,只需要从主模块中调用fire.Fire(),它会自动将你的代码转化为CLI,Fire()的参数可以说任何的python对象 二.安装 pipinstallfire 三.用法 实例1: 单个函数:python模块名参数1参数2 在Common目录下新建一个test_fire.py的模块 importfire defadd(a,b): count=a+b returncount if__name__'__main__': fire.Fire(add) ...

  oELtfgAoDdFJ   2023年11月02日   52   0   0 Python

一、多态 多态指的是一类事物有多种形态,一个类有很多个子类,因而多态的概念是基于继承的 序列数据类型有多种形态:字符串,列表,元组 动物有多种形态:人,狗,猪 1.动物的多种形态 动物有多种形态:人类、猪、狗 classAnimal: defrun(self):子类约定俗称的必须实现这个方法 raiseAttributeError('子类必须实现这个方法') classPeople(Animal): defrun(self): print('人正在走') classPig(Animal): defrun(self): print('pigiswalking') classDog...

  oELtfgAoDdFJ   2023年11月02日   24   0   0 Python

抛出问题 求任意一个字符串的全排列组合,例如a='123',输出123,132,213,231,312,321。(暂时假定字符串没有重复) 解决方案 目前有两种解决的方法 方法一: defstr_sort(s=''): iflen(s)<=1: return[s] str_list=[] foriinrange(len(s)): forjinstr_sort(s[0:i]+s[i+1:]): str_list.append(s[i]+j) returnstr_list str_list=str_sort('abc') print(len(str_list),str_list) 这种...

  oELtfgAoDdFJ   2023年11月02日   23   0   0 Python

Python中强大的选项处理模块。 示例 !/usr/bin/pythonfromoptparseimportOptionParser parser=OptionParser() parser.add_option("-f","--file",dest="filename", help="writereporttoFILE",metavar="FILE") parser.add_option("-q","--quiet", action="store_false",dest="verbose",default=True, help="don'tprintstatusmessagesto...

  oELtfgAoDdFJ   2023年11月02日   20   0   0 Python

1高阶函数 1.1数学概念 回顾下数学知识: y=f(x)这是最开始接触的普通函数 y=g(f(x))这个就是我们接触到的高阶函数 在数学和计算机科学中,高阶函数至少应当是满足下面一个条件的函数: 1)接受一个或者多个函数作为参数 2)输出一个函数 程序中我们的高阶函数也类似 示例计数器的函数: defcounter(base): definc(step=1): nonlocalbase base+=step returnbase returninc 1.2内建函数应用高阶函数举例 sorte(iterable[,key][,reverse])排序,返回一个列表 filter(func...

  oELtfgAoDdFJ   2023年11月02日   35   0   0 Python

Python有哪些关键字 Python常用的关键字 and,del,from,not,while,as,elif,global,or,with,assert,else,if,pass,yield,break,except,import,print,class,exec,in,raise,contiue,finally,is,return,def,for,lambda,try 1.and,or and,or为逻辑关系用语,Python具有短路逻辑,Falseand返回False不执行后面的语句,Trueor直接返回True,不执行后面的语句 2.del 删除变量 if__name__'__ma...

  oELtfgAoDdFJ   2023年11月02日   53   0   0 Python

1.介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 fromseleniumimportwebdriver browser=webdriver.Chrome() browser=webdriver.Firefox() browser=webdriver.PhantomJS() browser=webdriver.Safari() browser=webdriver.Edge(...

  oELtfgAoDdFJ   2023年11月02日   56   0   0 Python

一.并发和并行 多任务:一定时间段内,充分利用cpu资源,同时去执行多个任务 并发:快速交替的去执行多任务 并行:真正同时的去执行多任务,就是同时进行 二.多进程 1.多进程入门 知识点: 进程含义:运行中的程序 进程特点:cpu资源分配的最小单位 多进程模块:multiprocessing 进程类:Process 使用步骤: 导包:importmultiprocessing 创建对象:子进程对象=multiprocessing.Process(target=任务名) 开启进程:子进程对象.start() 示例: importmultiprocessing importtime 任...

  oELtfgAoDdFJ   2023年11月02日   21   0   0 Python
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~