
Python
文章平均质量分 56
Python学习
舌尖上的蛋炒饭
持续学习是一个人的自我修养,你的行为方式为人处事潜移默化的被书中的人或事影响。在自己的身上不断演绎着忒修斯之船悖论,才是保持思考与年轻的关键。世界纷繁复杂,社会花花绿绿,每个人都在时间中奔跑啊,记得偶尔停下来,生活不止有短视频不止有游戏不止有工作,除了是一个看客一个player一个员工,还是父母的儿子是妻子的丈夫也是一个可以独立思考的人。
展开
-
python的魔法方法2
我们先看下面的代码结果我们发现当我们使用o.age的时候,实际上是在尝试access这个对象的一个属性,但是当这个属性在这个对象不存在的时候,就报错了,AttributeError,告诉咱们,没有这个属性啊。那attr就是帮我们来做这个默认值的,也就是说,我们访问这个对象不存在的属性,我们不想让他报错了,想让他返回其他东西。结果首先呢,我们定义了attr方法,使其当访问这个对象不存在的属性的时候打印了getting:不存在属性的string,然后又手动抛出了一个AttributeError。原创 2024-03-29 17:20:39 · 751 阅读 · 0 评论 -
Python的魔法方法一
魔法方法在python的官方文档里叫special method,而magic method这个词是没有出现过的,所谓的魔术方法,就是让用户课制化一个类的方式,顾名思义,定义在类里的一些方法,特点,就是这些方法的前后,都有两个下划线。原创 2024-03-27 19:48:29 · 882 阅读 · 0 评论 -
Python函数的默认入参的坑
结果。原创 2024-03-27 16:19:59 · 318 阅读 · 0 评论 -
python的闭包
在理解闭包之前我们需要先理解什么是赋值和修改在Python中,重新赋值(reassignment)和修改变量(modifying a variable)通常指的是两种不同的操作,尤其是在处理不可变(immutable)和可变(mutable)数据类型时。重新赋值:重新赋值是指将一个新的值赋给一个已经存在的变量名。这个操作会改变变量名所引用的内存地址。在这个例子中,变量x最初指向一个整数对象5。当我们给x赋一个新的值,如字符串’hello’时,我们就进行了重新赋值。原创 2024-03-26 19:44:37 · 775 阅读 · 0 评论 -
Python的全局锁GIL
但是这个只解决了这一个问题啊,其实所有的python object都有这个问题,所以python的开发者,为了解决这个问题,决定使用全局锁GIL,这个锁,每个bytecode在运行的时候都是拿到了线程锁的,也就是没有bytecode被其他线程打断,那这种全局锁有什么好处。3、对于单线程的程序,或者没有办法多线程的程序,那全局锁的性能非常好,因为要锁是要时间的,全局锁保证了每个bytecode只要一次锁,但是如果你是那种每个object都有自己的锁的话,嗯,可想而知。3、执行两次a-=1,结果a=-1。原创 2024-03-20 20:17:35 · 861 阅读 · 0 评论 -
python的生成器
可以参考迭代器的博客,因为生成器就是一种特殊的迭代器原创 2023-05-08 17:55:20 · 166 阅读 · 1 评论 -
python的迭代器---Iterable和iterator
迭代器---Iterable和iterator原创 2023-05-08 17:02:52 · 325 阅读 · 0 评论 -
协程为什么是轻量级线程+go和python的协程
什么是上下文切换?上下文切换的时机?CPU通过分配时间片来执行任务,当一个任务的时间片用完,就会切换到另一个任务。在切换之前会保存上一个任务的状态,当下次再切换到该任务,就会加载这个状态。——任务从保存到再加载的过程就是一次上下文切换。按导致上下文切换的因素划分,可将上下文切换分为两点:自发性上下文切换非自发性上下文切换自发性上下文切换指线程由于自身因素导致的切出。非自发性上下文切换指线程由于线程调度器的原因被迫切出。切出线程的时间片用完有一个比切出线程优先级更高的线程需要被运行。原创 2023-03-30 17:26:00 · 951 阅读 · 4 评论 -
sqlalchemy报错:No engine is bound to this Table‘s MetaData. Pass an engine to the Table via autoload_w
首先,借着这个报错,我们来研究一下如何在项目中相对优雅的使用sqlalchemy1、数据异步是指跟数据库操作等待数据返回所需的时间消耗。这部分时间也应该还给cpu。2、对数据库表的操作,请求和返回也要单独封装出异步,这段中间的时间可以返回给系统。原创 2023-02-16 18:41:08 · 636 阅读 · 0 评论 -
python深拷贝和浅拷贝和赋值的区别
我的理解就是赋值:这个好说,一个人叫张三,A叫他张三,B叫他张四,但都是同一个人,张四不过是他的一个外号,如果张三被打了,也就是张四被打了深拷贝:这个也比较好理解,克隆了一个完全一模一样的人,张三,有一个儿子张二,我们进行深拷贝,克隆出了一个张三二号,一个张二二号,张二二号是张三二号的儿子,张三被打断了腿,张三二号是没变化的,张二被打断了腿,张二二号也是没变化的,完全自主的父子浅拷贝:介于复制和深拷贝之间的状态,比如说张三有一个儿子张二,我把张三克隆出来了一个张三二号,但是我们还有一个共同的儿子张二,如果张原创 2022-06-20 17:12:53 · 254 阅读 · 0 评论 -
ModuleNotFoundError: No module named ‘pymysql.util‘
ModuleNotFoundError: No module named ‘pymysql.util’先说现象,有一个项目,在自己的本地是没问题,到了线上就报错了deploy@autotest01-test-ty-qq-bj:/czb/interface_server/hua$ cat log.logTraceback (most recent call last): File "/czb/interface_server/hua/hua_start.py", line 19, in <mo原创 2022-03-07 16:22:32 · 2508 阅读 · 0 评论 -
python替换文件内容
python替换文件内容替换前文件内容hellonicetomeetyouhellonicetomeetyouhellonicetomeetyouhellonicetomeetyouhellonicetomeetyouhellonicetomeetyou代码"""@File : MyReplace.py @Contact : zhangyin@newlink.com@Modify Time @Author @Version-----------原创 2022-01-26 12:04:32 · 1366 阅读 · 0 评论 -
python的logging日志模块和loguru
python的logging日志模块和loguru业务场景:你总不能一直使用print打印日志吧logginglogging日志级别 level"""@File : MyLoggenFour.py @Modify Time @Author @Version------------ ------- -------- @Desciption:"""import logging"""CRITICAL > ERROR >原创 2022-01-17 16:10:16 · 1775 阅读 · 3 评论 -
python魔法函数之str和repr
python魔法函数之str和repr业务场景业务场景:你打印了一个类,发现打印出来的是一个内存地址,那你想把属性打印出来该怎么办呢"""@File : MyMoFa.py @Modify Time @Author @Version------------ ------- -------- @Desciption:"""class People: def __init__(self, name: str, age: int,原创 2022-01-14 16:47:13 · 267 阅读 · 0 评论 -
easyocr+requests+cookie分析解决登陆验证码
easyocr+requests+cookie分析解决登陆验证码需求初衷,系统登陆有一个验证码图片,输入正确的验证码才可以登陆,应该如何获取登陆后的cookie。cookie分析我们先来分析一下整个请求过程下图是页面信息先来分析一下这个验证码图片的链接,我原本以为这个会是一个图片链接,但是事与愿违,在验证码图片上右键复制图片地址,出来的是一个网络请求接口https://txxx/checkCode/createImage我们来多次请求一下这个接口,发现除了返回验证码图片之外,它的cooki原创 2022-01-14 15:29:01 · 2259 阅读 · 0 评论 -
python图片识别easyocr:Downloading detection model, please wait. This may take several minutes depending
python图片识别easyocr:Downloading detection model, please wait. This may take several minutes depending upon your network connection.初次认识easyocr,初衷是为了解决网站因为有验证码所以需要图片识别功能easyocr安装pip3 install easyocreasyocr使用"""@File : MyOCR.py @Modify Time原创 2022-01-13 20:09:37 · 14073 阅读 · 23 评论 -
python的md5和sha1加密
python的md5和sha1加密"""@File : MyJiaMi.py @Modify Time @Author @Version------------ ------- -------- @Desciption:"""import hashlib"""hash.update(arg)更新hash对象。连续的调用该方法相当于连续的追加更新。例如m.update(a); m.update(b)相当于m.update(a+b)。注原创 2022-01-05 20:26:43 · 295 阅读 · 0 评论 -
python操作redis
python操作redis举个例子,就是下面这种我的账户的津贴的余额,是放在DB0的cashBack里的,每一个key的组成为渠道id:useridvalue则为该账户的余额"""@File : MyRedis.py @Modify Time @Author @Version------------ ------- -------- @Desciption:Hash:是一个键值(key=>value)对集合String:st原创 2021-12-29 13:52:18 · 785 阅读 · 0 评论 -
ORM之SQLAlchemy+database实现增删改查+工程化设计数据库层
ORM之SQLAlchemy+database实现增删改查+工程化设计数据库层python的ORM之SQLAlchemy简单的增删改查在上一篇文章我们也看到了,增删改查数据库表都需要我们创建对应的类才可以,好麻烦啊,有没有办法直接从获取到数据库表的类呢,在实际工作中我们是这么做的安装databases和aiomysql(venv) ZHR:fastapitest zc$ pip3 install databasesCollecting databases Downloading databas原创 2021-12-29 00:16:42 · 941 阅读 · 0 评论 -
python的方法限制返回值类型
方法限制返回值类型"""@File : LimitReturn.py @Modify Time @Author @Version------------ ------- -------- @Desciption:"""def return_limit(a: int) -> float or bool: # -> float or bool 即为限定了返回值的类型为bool或者float if a == 10:原创 2021-12-23 14:33:37 · 2496 阅读 · 0 评论 -
python的ORM之SQLAlchemy简单的增删改查
ORM之SQLAlchemy简单的增删改查数据准备m_usercreate table m_user( id bigint not null primary key, username varchar(64) null, avatar varchar(255) null, email varchar(64) null, password varchar(64) null, st原创 2021-12-22 18:21:08 · 1279 阅读 · 0 评论 -
python的序列化和反序列化
python的序列化和反序列化说人话的话,就是程序中的对象,如Python中的字典、列表、函数、类等,都是存在内存中的,一旦断电就会消失,不方便传递或存储,所以我们需要将内存中的对象转化为文本或者文件格式,来满足传输和持久化(存储)需求序列化: 内存对象 -> 文本/文件(字符串)反序列化: 文本(字符串) -> 内存对象dumps和loads(字符串和对象的序列化和反序列化)"""@File : MyJson.py @Modify Time @Au原创 2021-12-21 18:33:00 · 647 阅读 · 0 评论 -
python操作mysql
python操作mysql读取yaml文件的类,之后会用到"""@File : Read_YAML.py @Contact : xxx.com@Modify Time @Author @Version------------ ------- -------- 2021/12/16 6:19 下午 xxx 1.0@Desciption:"""import yamlimport osclass Read_YA原创 2021-12-21 17:46:10 · 1192 阅读 · 0 评论 -
python操作yaml文件
python操作yaml文件yaml文件内容device_info_0: bp: 4900 deviceName: JPF4C19123011893 port: 4700device_info_1: bp: 4902 deviceName: VBJDU18504012277 port: 4702项目结构代码"""@File : Read_YAML.py @Contact : xxx.com@Modify Time @Author原创 2021-12-16 19:27:40 · 1187 阅读 · 0 评论 -
python执行shell命令
python执行shell命令import osimport subprocessdef run_cmd_system(command): try: print(f"通过system运行run command: {command}") os.system(command) except Exception as e: print(f"命令运行失败!{e}") raise e # 第一种,通过os.system执原创 2021-12-15 21:02:50 · 1571 阅读 · 0 评论 -
fastapi入门八部署到服务器虚拟环境上
fastapi入门八部署到服务器虚拟环境上生成requirements.txt首先,我们代码开发完成之后(venv) ZHR:fastapitest zc$ pip3 freeze > requirements.txt然后会在项目的根目录下生成一个requirements.txt,里面有所有的这个项目依赖的包,比如下面的这样anyio==3.4.0asgiref==3.4.1click==8.0.3fastapi==0.70.0h11==0.12.0idna==3.3pydan原创 2021-12-15 15:14:46 · 7635 阅读 · 3 评论 -
linux配置python虚拟环境
python虚拟环境为什么使用虚拟环境,如果你的主机上部署了N个python项目,每个项目依赖了不同的包,甚至,依赖了相同的包的不同的版本,是不是就冲突了,所以我们需要虚拟环境。由于我的python版本是比较高的,所以没有尝试3.3版本之前的方法,据说是要使用virtualenv这个工具包的我为了python虚拟环境新建了一个目录[root@hecs-82454 pythonvirtual]# ls[root@hecs-82454 pythonvirtual]# python -m venv my原创 2021-12-09 17:41:16 · 1390 阅读 · 0 评论 -
linux配置python3环境
linux配置python3环境查看自带的python版本这是我的云主机自带的python版本[root@hecs-82454 ~]# python --versionPython 2.7.5安装python3安装python可能的依赖[root@hecs-82454 ~]# yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel zlib-devel gcc wgetLoaded plu原创 2021-12-09 11:24:45 · 1022 阅读 · 0 评论 -
Python概念之多线程+多进程+协程
Python概念之多线程+多进程+协程文案来自于多进程多线程协程只是将文案中的代码自己修改了一下,解决了自己对于文章中不懂的地方,谨做记录,平时工作中,除了appium处理多个手机的时候用过多进程,其实很少用到这方面的知识,所以做一个简单的梳理,概念性的记录多进程linux或者Mac操作系统Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进原创 2021-12-08 20:23:32 · 933 阅读 · 0 评论 -
fastapi入门六部署
fastapi入门六部署之前我们写的东西都是在一个文件里,那我们有N个接口,是不是需要工程化的管理比如说有100个接口在avalon/services有100个接口在account/services该怎么处理呢,下面是我们的解决方案首先,来看一下整个项目的框架将所有的请求都放到了routers里,并将这个包下的所有包都引入进来然后,在routers的下面的每一个包里,都会定义一个router+包名的文件,将引入fastapi的工作在这里实现然后,将该包下除了router+包名的原创 2021-12-07 18:44:42 · 989 阅读 · 1 评论 -
fastapi入门五处理异常
fastapi入门五处理异常"""@File : fastapiOne.py@Desciption:"""import uvicornfrom fastapi import FastAPI, HTTPException, Queryapp = FastAPI()people_id_str = {"1": "2"}people_id_int = [1, 2, 3, 4, 5]@app.post("/fastapi/{people_idone}")async def po原创 2021-12-07 18:08:50 · 737 阅读 · 0 评论 -
fastapi入门三post请求
fastapi入门三post请求post请求一般的请求体都是json格式的在这里我们需要引入一个新的包,下面这个包就是用来定义入参的消息体的pip3 install pydantic简单的post请求请求地址http://127.0.0.1:8100/fastapi/请求体(均使用默认值,所以请求体为空){}代码"""@File : fastapiOne.py@Desciption:"""import uvicornfrom fastapi import F原创 2021-12-07 16:32:37 · 53343 阅读 · 2 评论 -
fastapi入门二复杂的get请求
fastapi入门二复杂的get请求从路径中获取参数"""@File : fastapiOne.py@Desciption:"""import uvicornfrom fastapi import FastAPIapp = FastAPI()@app.get("/fastapi/{date}")async def date(date): return {"date": date}if __name__ == "__main__": uvicorn.r原创 2021-12-02 20:27:40 · 1983 阅读 · 0 评论 -
fastapi入门一简单的get请求
fastapi入门一简单的get请求依赖包准备pip3 install uvicornpip3 install fastapiget请求"""@File : fastapiOne.py@Desciption:"""import uvicornfrom fastapi import FastAPIapp = FastAPI()# app = FastAPI() 用于实例化 FastAPI类,通常app这个变量会设置成全局的,至少在当前模块作用域有效。@app.get原创 2021-12-01 19:44:09 · 2006 阅读 · 0 评论 -
python入门之:读写文件
读写文件读通过内置函数open()来打开一个文件,并返回文件对象,若无法被打开,则会抛出OSError。文件内容你好张三法外狂徒林黛玉风雪山神庙read如果文件很小,read()一次性读取最方便file = open("222.txt", mode="r", encoding="utf-8")print(type(file)) #打印文件对象的类型print(file.read()) #一次性读取文件所有的内容,这就注定它没办法读取大文件file.close() #打开文件之后,原创 2021-11-26 17:06:59 · 850 阅读 · 0 评论 -
python入门之:条件判断+循环
条件判断+循环条件判断if -elseage = input('birth:')int_age = int(age) # 因为input进来的会被处理成字符串,所以也要处理成数字if int_age <= 18: print("未成年")else: print("以后就不算早恋了")birth:20以后就不算早恋了Process finished with exit code 0birth:17未成年Process finished with exit c原创 2021-11-25 17:24:06 · 530 阅读 · 0 评论 -
python入门之:函数+类+对象
函数+类+对象函数与java不同的是,参数并不用事先声明类型def add(x, y, z): return x + y + zprint(add(1, 2, 3))全局变量和局部变量简单的来说,局部变量是在函数内定义的变量,只能在定义它的函数中使用。全局变量,是定义在函数之外的变量,它可以在程序的任何位置使用。默认参数def add(x, y, z, m=10): return x + y + z + mprint(add(1, 2, 3))print(ad原创 2021-11-24 21:18:51 · 1192 阅读 · 0 评论 -
python入门之:列表+元组+字典+集合
python入门之:列表+元组+字典+集合主要知识框架及N多文案从下面这位大神处截取梳理python知识主要是因为之前虽然也写过appium,也写过接口测试的,但是说实在的,那些东西都是框架,并没有系统的学习过python的基础知识,所以想要重新梳理一遍,然后看到了这个博主的系列博客,恰好符合我的需求,遂,拿来,转载已经获得作者许可,在原基础上按照自己的知识储备再做了部分精简和细化,如果说原文是精简版,那我这个就是精简plus版,只是梳理出大概的脉络,下面是原文的链接传送门列表[‘h’, ‘e’,原创 2021-11-24 21:17:30 · 824 阅读 · 0 评论