待学习内容
4.Pytest执行Yaml格式测试用例 - 小蚂蚁测试 - 博客园 pytest 执行yaml测试用例
shutil 模块
python 自动化测试常用库: Python自动化测试常用库整理_高级点工的博客-优快云博客_python自动化库
shutil.copyfile 用法: python shutil.copy()用法 - Norwegian-Wood - 博客园
pytest + allure + jenkins : Pytest - 标签 - 小菠萝测试笔记 - 博客园
看jenkins 的学习内容: 测试高级进阶技能系列 - Jenkins、CI/CD - 随笔分类 - 小菠萝测试笔记 - 博客园
魔法方法
12.9
zipfile 库 压缩解压文件
Python中zipfile压缩文件模块的基本使用教程_python_脚本之家 (jb51.net)
12.8
string 方法详解 Python String 方法详解 - 软测小生 - 博客园 (cnblogs.com)
7.20
看完python3的内置函数
7.13(pass)
socket模块
继承
6.17 (pass)
python100 例 :完结
6.16 (pass)
python100 例:8 - 24
isalpha, isalnum, isdigit之间的区别:【python入门到放弃】isdigit()、isalpha()、isalnum() 三个函数的区别和注意点 - 无伞 - 博客园
idalnum: 至少有一个字符且所有字符都是字母数字
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
def func(n):
if n == 0: # 这里设置为0,是因为 本次没有算入到反弹次数内
high = 100
return high
else:
high = func(n-1)/2
return high
print(func(10)) # 这里指的是第10次反弹
long = 0
for i in range(0,10): # 这里是指的第10个落地,是包括第0次的,所以第0次的路径拉出来另算
if i == 0:
long = long + func(i)
else: # 第10次落地,其实是第9次反弹,并不是第10次反弹
long = long + 2* func(i)
print(long)
6.15 (pass)
num = int(input('the num:'))
for i ,j in zip( range(num//2,-1,-1),range(1,num+2,2),): # 控制行数 和 个数
print(" "*i , "*"*j) # 只要控制前面的空格就可以了
for k ,t in zip( range(1,num//+1),range(num-2,0,-2),): # 控制行数 和 个数
print(" "*k , "*"*t) # 只要控制前面的空格就可以了
6.14 (pass)
python100 例:25 - 39
#求100之内的素数 : 又称为质数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除
a = []
for i in range(2, 101):
for j in range(2,i):
if (i%j) == 0:
break
else:
a.append(i)
print(a)
6.10 (pass)
eval 方法能使字符串本身的引号去掉,保留字符的原本属性
eval() 函数也可以直接用来提取用户输入的多个值
a, b = eval(input('input a,b :'))
python100 例:40-61
6.7 (pass)
python100 例:62- 68
杨辉三角:
n = 10
def lst(i, j):
if j == 1 or i == j: # i 为行, j每行第一个个数
return 1
else:
return lst(i-1, j-1)+ lst(i-1, j) #i 为当前行,j为当前计算的第j个值
for i in range(1, 11):
for j in range(1, i+1):
a = lst(i,j)
print( f" {lst(i,j)} ",end= ' ')
print()
6.3 (pass)
collections 模块 Python常用数据结构之collections模块 - Fate0729 - 博客园
python 中set 交集, 并集 ,差集,对称差集 python 集合比较(交集、并集,差集) - Chaman囍 - 博客园
6.2 (pass)
python100 例:69- 77
实现列表的index =0 位置的轮询
a = [1,2,3,4]
a.insert(len(a), a.pop(0)) #注意这里是 len(a)
print(a)
奇偶数求和(1/n, n相差2 )快捷方法:
def sumfr(n):
ls = [1/i for i in range(n,0,-2)]
return sum(ls)
5.31 (pass)
python100 例: 78 - 85
题目: 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
i = 0 # 用来计算猴子的数量
j =1 # j为最后一只猴子拿走的桃子数量
x =0 # 当前剩下的桃子的数量
flag = 0 # 用来验证 5只猴子是否都满足条件了,若满足条件则结束while循环
while flag<5:
x = 4 * j # 最后剩下的桃子的数量, j为最后一只猴子拿走的数量
for i in range(0, 5): # 5只猴子够满足此条件
if (x%4 !=0):
flag = 0
break
else: # 因为剩下的桃子数一定要是可以被4整除的
flag = flag +1
x = (x/4)*5+1 # 算出上一次留下的桃子数
j = j+1
print(f'一共有 {x}个桃子, 最后一只猴子拿走的桃子数为:{j} ')
5.27 (pass)
-count() 方法用于统计字符串里某个字符出现的次数
-python3 中的dateutil模块 Python时间处理-dateutil模块 - 简书
作用:字符串日期转换为易读的日期格式 ; 以及按照一定规则输出日期
- 两个时间戳之间相差的秒数:
c = datetime.datetime.fromtimestamp(b)- datetime.datetime.fromtimestamp(a)
print(c.seconds)
-
import time
print(time.ctime(time.time())) # 得到本地时间的标准格式
print(time.localtime(time.time())) # 得到本地时间 的元组格式
print(time.asctime(time.localtime(time.time()))) # 得到本地时间的标准格式
print(time.asctime(time.gmtime(time.time()))) # 得到0时区时间
-python100 例: 85- 100
5.26 (pass)
encode,decode: python3之后的版本中移除了unicode类型、默认utf-8
json 中的dumps ,loads与 dump,load之间的区别
python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分 - 小明在线 - 博客园
SMTP发送邮件带附件
5.25 (pass)
正则表达式(1) python3正则表达式指南 - CloudArrows - 博客园
SMTP发送邮件
5.24 (pass)
正则表达式(2) https://www.jb51.net/article/166072.htm
5.22 (pass)
正则表达式
mangodb 的基本语法 : MongoDB基本语法 - mao2080 - 博客园
mysql group by的使用
5.20 (pass)
类的专用方法: python:类的专有方法_不怕猫的耗子A-优快云博客_类的专有方法
命名空间与作用域
mongodb 的基本语法 : MongoDB基本语法 - mao2080 - 博客园
5.19 (pass)
私有属性,私有方法 静态方法,普通方法,类方法 都可通过对象调用, 静态方法可直接用 类名调用,普通方法只能通过对象调用,类方法可直接 通过类名调用
类的专用方法: python:类的专有方法_不怕猫的耗子A-优快云博客_类的专有方法
5.17 (pass)
面向对象
错误与异常
5.12 (pass)
time , datetime模块
5.11 (pass)
os 模块
zifu = input('请输入你的字符:')
allfile = os.listdir(os.getcwd())
l = []
for i in allfile:
if os.path.isdir(os.path.join(os.getcwd(), i)):
if zifu in i :
l.append(i)
print(os.path.abspath(os.path.join(os.getcwd(), i)))
print(l)
4.22 (pass)
python 3 字符串编码解码: Python 3 字符串的编码解码,以及str类型、bytes类型_tz_zs的博客-优快云博客
python 标准异常总结: keyerror是什么异常_04.异常处理_摆摊卖爱情的博客-优快云博客
python 面试内容
4.25 (pass)
- 形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字
- 若没有定义__all__ ,那么使用from sound.effects import *这种语法的时候,就不会导入包 sound.effects 里的任何子模块。他只是把包sound.effects和它里面定义的所有内容导入进来(可能运行__init__.py里定义的初始化代码)
模块
输入与输出
文件操作
4.20(pass)
数据结构
4.18 (pass)
迭代器
函数
4.17(pass)
python 面试内容 : 24 - 45
python 十进制和 十六进制之间的转化 : python常用的十进制、16进制之间的转换 - 虚生 - 博客园
python 编程第一步 - 循环语句
python collections模块 : Python标准库collections模块的Counter类_luoyayun361的专栏-优快云博客
python datetime模块:Python datetime模块详解_u011250186的博客-优快云博客_python中的datetime模块
python time 和datetime模块的区别: Python 标准库中 time 和 datetime 的区别与联系_叫我二当家的专栏-优快云博客_time库和datetime库的区别
repr() 函数将对象转化为供解释器读取的形式
4.14 (pass)
python List 排序的两种方式:https://www.jb51.net/article/108949.htm ,使用内建函数 list.sort 或者是使用 序列类型函数sorted(list)
python number(元组)
# 字典根据键从小到大排序dict= {"name”:”zs”,”age”:18,”city”:”深圳”,”tel”:”1362626627”}
dict={"name":"zs" ,"age":18,"city":'深圳',"tel":"1362626627"}
list = sorted(dict.items()) # 默认以键排序, 若是以值排序 list = sorted(dict.items() ,key= lambda x: x[1])
print(list)
dict1 = {}
for i in range(len(list)): #将由元组组成的列表,转化为字典
dict1[list[i][0]] = list[i][1]
print(dict1)
字典根据值从大到小排:
a = {'a':1 , 'b':3 , 'c':3, 'd':4}
list =sorted( a.items(), key=lambda item: item[1], reverse=True)
print(list)
dict = {}
for i in range(len(list)):
dict[list[i][0]] = list[i][1]
print(dict)
4.12 (pass)
python number(元组)
python number(字典)
总结:
1. 字符串,元组,数字 是不可变类型,所以只能只用del 来删除整个 字符串,元组,数字; 但是列表,字典 可用del 来删除单个值, 也可以用 clear来清空值
2. 字典 : a = {1: [1,2,3], 2:[4,5,6]} print(a[1]) ,打印的是 [1, 2, 3] ,print(a[2]) ,打印的是[4,5,6] ,这里的1,2 是键值
3. fromkeys( dict.fromkeys(seq[, value] ) ,seq为字典键值列表
4. 可使用 update 和 直接赋值的方法来更新键对值
a.update({'age':'24'})
print(a)
a['city'] = 'changsha'
5.a.keys() ,a.values() 可得到迭代器,可使用list来转化为列表
python 引用对象, 深拷贝,浅拷贝Python 直接赋值、浅拷贝和深度拷贝解析 | 菜鸟教程
-
直接赋值:其实就是对象的引用(别名)。 b = a: 赋值引用,a 和 b 都指向同一个对象
-
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。
-
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象,b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的(需要导入 copy模块)
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
4.11 (pass)
python 面试内容 : 13- 23
13:
list = [1,2,3,4,5]
list1= map(lambda x:x**2 , list)
list = []
for i in list1:
list.append(i)
print(list)
list2 = filter(lambda x:x>10 ,list)
list3 = []
for i in list2:
list3.append(i)
print(list3)
lambda函数的使用:Python 中lambda 简单介绍 - Ivy_li4258 - 博客园
字符串和列表去重: Python 字符串与列表去重 - 光着尐脚丫 - 博客园
random模块常用函数:Python Radom常用函数_小友的博客-优快云博客
python number(字符串) :内建函数 剩下的内容
python list(列表)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
4.7 (pass)
python 中 __new__ 和 __init__的区别: Python 中的__new__和__init__的区别 - CuriousZero - 博客园
__new__ : 实例在创建之前被调用,它的任务是创建实例 并返回实例对象
__init__:在实例被创建后调用,来设置实例对象的一些初始值
python 面试内容 : 8-12
python number(字符串) :内建函数 ,部分内建函数还没看完
4.6 (pass)
python number(数字)
python 面试内容 : 1 - 7
4.4(pass)
闭包 Python深入04 闭包 - Vamei - 博客园
概述: 1. 当一个函数定义在另一个函数内,且使用到了外部函数的参数(该参数被称为 环境变量, 环境变量取值 被保存在函数对象的 __closure__ 属性 ),整个代码块称为闭包
2.闭包的作用是 可减少 函数需要传递的参数量,提高代码的移植性
4.1 (pass)
@property , setter ,getter 的用法 https://www.jb51.net/article/202639.htm
num 前后没有下划线的是公有方法
_num 前边有一个下划线的为私有方法或属性,子类无法继承
前边有两个下划线的 一般是为了避免于子类属性或者方法名冲突,无法在外部直接访问
前后都有双下划线的为系统方法或属性
后边单个下划线的可以避免与系统关键词冲突
双下划线的方法或者属性 无法外部直接访问,需要用过getter来访问
class Test:
def __init__(self):
self.__num = 100 #无法直接在外部访问
@property
def getNum(self):
return self.__num
@getNum.setter #注意名称需要一致
def getNum(self,num):
self.__num = num
t = Test()
print(t.getNum) #需要通过 t.getNum来访问
或者使用 num = property(getNum, setNum) :
class Test:
def __init__(self):
self.__num = 100 #无法直接在外部访问
def getNum(self):
return self.__num
def setNum(self,num):
self.__num = num
num = property(getNum, setNum)
t = Test()
print(t.getNum) #得到的是 地址
t.num = 200
print(t.num) # 可正常得到200
单下划线的方法或者属性 无法被子类继承
class Test:
def __init__(self):
self._num = 100 #单下划线的无法被子类继承
@property
def getNum(self):
return self._num
t = Test()
print(t.getNum) #需要通过 t.getNum来访问
3.7 (pass)
shutil.copyfile 用法: python shutil.copy()用法 - Norwegian-Wood - 博客园
查看代码
2.24 (pass)
pytest 学习内容 Pytest - 标签 - 小菠萝测试笔记 - 博客园 看(28) - (29)
2.24 (pass)
pytest 学习内容 Pytest - 标签 - 小菠萝测试笔记 - 博客园 看到了(27)
2.23 (pass)
allure 的使用:
- 使用命令 行来生成 allure报告 ,依次执行:
pytest -n auto --alluredir=yourdir # -n auto:可以自动检测到系统的CPU核数 使用分布式运行用例 ; --alluredir=yourdir #只需添加 --alluredir 选项,并提供指向应存储结果的文件夹的路径 例如:pytest -n auto --alluredir .\report 或者 pytest -n auto --alluredir=report , report是你要放置的文件夹
allure serve report #report 是已生成数据的文件夹
- 创建 environment.properties 文件 放置在 report 文件内,然后生成网页报告,报告内会显示environment 相关内容
2.22 (pass)
pytest allure的安装教程 Pytest+Allure生成自动化测试报告 - 一步一脚印丶 - 博客园
安装allure报错提示JAVA_HOME is set to an invalid directory解决办法: 安装allure报错提示JAVA_HOME is set to an invalid directory解决办法_textwj的博客-优快云博客_allure安装后提示java没有path
2.21 (pass)
1.pytest.mark.xfail 的使用 : pytest xfail参数详解 - jescs - 博客园
2.可以让那些标记为@pytest.mark.xfail 但实际通过显示XPASS的测试用例被报告为失败的两种方法:
= 在pytest.ini 文件内 设置xfail_strict = True可以让那些标记为@pytest.mark.xfail 但实际通过显示XPASS的测试用例被报告为失败 ;
= 或者是设置: @pytest.mark.xfail(stict = True)
3. 配置文件pytest.ini的详细使用
= 配置 marks
=配置 xfail_strict
=配置 norecursedirs : pytest收集用例的时候,会遍历所有的子目录,将无需遍历的目录,加到ini文件内,并使用 空格 隔开,则可简化其搜索工作
=配置 addopts :可以将较长的命令行配置在ini文件内,要是想执行该命令可直接在cmd中使用; pytest
= 配置log_cli : 控制台实时输出日志
=更改测试用例收集规则
4. pytest.assume的用法 :Pytest系列- 多重校验插件之pytest-assume的详细使用 - 吹神 - 博客园
使用assert ,若多个断言中,有一个断言失败了,则后续断言不会执行; 若使用assume ,后续断言可继续执行
pycharm提示未识别的话,在该位置alt+回车键,弹出三个选项,选择第二个忽略该错误。
5. pytest-xdist 的用法:
= 可以让自动化测试用例分布式执行,从而节省自动化测试时间
=pytest-xdist 是属于进程级别的并发
=分布式执行用例的设计原则 (独立,随机,不影响): 用例之间独立 无依赖关系 ; 用例执行没有顺序,随机顺序可运行 ; 每个用例可重复运行,不影响其他用例
= 使用分布式测试的命令: pytest -s -n auto ; 其中 -n auto 指的是可自动检测系统的cpu核数 ; 使用auto等于利用了所有的cpu来跑用例,此时的cpu占用率会特别的高
= 指定需要多少个cpu来跑用例: pytest -s -n 2
= 如何让scope=session(或者scope范围级别较高的,例如session) 的fixture在test session中仅仅执行一次 : :
可以通过锁定文件,来进行进程中的通信
= windows 下设置文件锁:python windows 下设置文件锁、多线程_枪枪枪的博客-优快云博客_python 文件锁
2.17 (pass)
pytest 使用命令行来运行 测试用例:pytest教程之命令行方式运行用例_df0128的专栏-优快云博客_pytest执行命令
2.10 (pass)
pytest mark 标签的使用 pytest之mark的使用 - 奔奔-武 - 博客园
注意: 1. 非命令行的写法: pytest.main(["-m", "demo", "test_mark.py"])
2. 需要新建 一个文件 来运用 pytest.main(["-m", "demo", "test_mark.py"]) ,若在原文件运行,还是会运行所有的用例
后置固件 yield 和 终结函数 addfinalizer 的区别学习pytest的第五天-----后置固件yield和终结函数addfinalizer_热巴的小哥哥博客-优快云博客_addfinalizer
它和yield相比不同的是:无论是固件的“setup”部分是否出现异常或断言失败,它都会执行; 此外它还支持传入多个函数。
1.7 (pass)
sys库 Python编程——sys模块的使用详解(附实例)_橘子女侠-优快云博客_python中sys模块用法
os.system的使用: python基础之os.system函数 - 倥偬时光 - 博客园
1.6 (pass)
round 函数返回浮点数的四舍五入值: :Python round() 函数 | 菜鸟教程
time:Python基础时间库——time - 苦逼运维 - 博客园
strftime(tpl,ts) : tpl是格式化模板字符串,用来定义输出效果;注意 ts是系统内部时间类型变量 ,所以ts 不可为时间戳(time.time())
perf_counter() : 返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用求差值才有意义
不同时间格式的转化: Python获取秒级时间戳与毫秒级时间戳 - 北方卧龙 - 博客园
os 模块获取相对路径:OS模块获取文件相对路径 - 小小小、小鱼儿 - 博客园
当前目录下 创建同级目录
file_list = os.path.split(os.getcwd())
print(file_list) #得到 ('F:\\pythonProject1', 'Example')
base_dir = file_list[0]
print(base_dir)
case_file = os.path.join(base_dir, 'result')
os.mkdir(case_file) #创建了 F:\\pythonProject1\result
1.5 (pass)
什么是properties文件_sheoh的专栏-优快云博客_properties文件 .properties 文件的使用
1.4 (pass)
在家里的电脑上安装git ,并clone 代码
12.31 (pass)
allure 的使用 :
allure(三十)--allure描述用例详细讲解 - 星空6 - 博客园
Python学习笔记|python之allure报告_一点点-优快云博客_python的allure
yaml文件的使用 自动化项目配置或用例文件格式推荐--yaml - hyx20160514 - 博客园
yaml 校验器 YAML、YML在线编辑器(格式化校验)-BeJSON.com
12.10 (pass)
python json.dumps() json.dump()的区别 - 枫飞飞 - 博客园 dumps,dump , load ,loads 的区别
面试中get和post的区别_迟迟 优快云-优快云博客_get和post的区别面试 get post的区别
12.9 (pass)
将代码同时push到2个远程仓库(github和码云)_Chad97的博客-优快云博客 将代码同时push到2个远程仓库
12.7- 12.8 (pass)
git的使用:
Git使用详细教程 - seven-ahz - 博客园 git的使用
git-for-windows Mirror git的安装地址
git log 详解_简简单单兔呦-优快云博客_git log git log详解
git restore指令和git restore --staged 的使用_酸菜。的博客-优快云博客_git restore git restore指令和git restore --staged 的使用
https://blog.youkuaiyun.com/asoar/article/details/84111841 在不同状态下的Git撤销&回滚操作
Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”_段浅浅的博客-优快云博客 Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”
Git恢复之前版本的两种方法reset、revert(图文详解)_游笑天涯-优快云博客_git revert git reset 和 get revert的区别
Git合并时遇到冲突或错误后取消合并 - 鲁小风lyf - 博客园 git合并的时候出现冲突,取消合并
git clone、git pull和git fetch的用法及区别 - sfornt - 博客园 git clone , git pull ,git fetch 的区别
git stash 用法总结和注意点 - 加个小鸡腿 - 博客园 git stash 的用法 :git stash 不作用于 untracked file (即没有在git 版本控制中的文件,是不能被git stash 存起来的) ,可作用于工作区和暂存区
pycharm配置git--图文教程_coder_oyang的博客-优快云博客_pycharm配置git pycharm 配置git
总结:
git clone :是一个从无到有的克隆操作,不需要进行 git init 初始化。clone来的 .git文件夹内存放着和远程仓库一模一样的版本库记录 : git clone 版本库的url
比如: git clone GitHub - yangsuqin/testgit
git pull :从远程仓库获取最新版本,在和本地分支合并 : git pull 远程主机名 远程分支名:本地分支名
比如:git pull origin master:branchtest #将远程主机origin的master分支拉取过来,与本地的branchtest分支合并 ; 如果将冒号和后面的branchtest去掉,则表示将远程origin仓库的master分支拉取下来与本地当前分支合并
git fetch : 更新远程代码到本地仓库 : git fetch 远程主机名 远程分支名
git fetch origin master # 从远程的origin仓库的master分支下载代码到本地的origin master
git log -p master.. origin/master #比较本地的仓库和远程仓库的区别
git merge origin/master #把远程下载下来的代码合并到本地仓库
git commit操作以及退出日志编辑状态_huakaiba的专栏-优快云博客_gitcommit怎么退出 git退出日志编辑状态
git switch 命令的一些常用的用法 git switch的使用
总结:
1.在工作区的代码还未add :想要撤销修改,可使用 git restore <filename> ,或者 git restore . (撤销全部修改) ; 该操作只改变了工作区
2.工作区的代码add到了暂存区,未commit:
·若用户在工作区又加了新的内容,但是想撤销 可使用 git restore <filename>
·若用户add到暂存区的内容有误,想要撤销,可使用 git reset HEAD 或者 git reset HEAD <filename> , 该操作只改变暂存区,不改变工作区
3.git commit到了本地仓库,但是未git push到远程仓库:
git reset --hard <commitid> (回到其中你想要的某个版)
或者 git reset --hard HEAD^ (回退到上一个版本)
或者 git reset --hard HEAD~100(回退到前100个版本)
4.git push把修改提交到远程仓库
git reset 适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
git revert 适用场景: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西
12.3(pass)
Python3 中 random模块 - 暮良文王 - 博客园 random模块的使用
12.2 (pass)
菜鸟教程实例 (hello world —— 求平方根)
19 Python __dict__与dir()区别_忧桑的小兔子-优快云博客_python中的dir() Python __dict__与dir()区别
https://blog.youkuaiyun.com/qq_35075164/article/details/80918072 type.methodtypes的使用
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :动态特性(18)
12.1(pass)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :装饰器(17)
11.30 (pass)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :生成器(17)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :迭代器(18)
11.26 (pass)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :包(15)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :深浅拷贝(16)
11.24 (pass)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :异常(13)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :模块(14)
11.23 (pass)
看 Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 :面向对象特性(12)
11.16 (pass)
看完全部的内置函数
11.9 (pass)
看内置函数 callable() 至 vars()
Python学习进阶 - jack_Meng - 博客园 的python 高级阶段 : 面向对象(11)
11.5 (pass)
Python可迭代对象,迭代器,生成器的区别 完全理解Python迭代对象、迭代器、生成器 - FooFish
1. 可迭代对象:1.集合数据类型 list tuple dict set str 2.generator,包括生成器和带有yield的genarator function,这些可直接作用于for循环的对象统称为可迭代对象:iterable
2.生成器是迭代器对象,但是列表字典字符串虽然是可迭代的,但是不是迭代器,可将这些使用iter()函数来变成迭代器
3.可以被next函数调用,并不断返回下一个值的对象,被称为迭代器
4.生成器也是迭代器
如果想验证是否是迭代器,可使用isinstance() 判断是否是可迭代对象:
from collections import Iterable
isinstance( abcde', Iterable)
注意:生成器是可迭代对象,迭代器不一定是生成器。并且迭代器无法回取,只能向前取值。
注意:一个对象具有 iter 方法的才能称为可迭代对象,使用yield生成的迭代器函数,也有iter方法。凡是没有iter方法的对象不是可迭代对象,凡是没有__next__()方法的不是生成器。(这里的方法都是魔法方法,是内置方法,可以使用dir()查看)
11.4 (pass)
看完内置函 数
看 get set ,property的用法 python的get、set方法_qq_30148167的博客-优快云博客_python setget
11.2 - 11.3 (pass)
看完菜鸟教程 ,见下图
10月28之前 (pass)
1.Jmeter接口测试(七)用例数据分离 - hancel秋 - 博客园 ,参考该博主的博客,进行实践操作