python—测试工具开发流程(4)—案例生成指定规则的邮箱:任务3,面向过程到面向对象的封装
- 面向过程封装:
- 代码:
-
# 生成邮件 import random import string import csv def get_email(min_len,max_len,eamil_list): # 在指定长度内生成一个随机数 num = random.randint(min_len,max_len) # 设定初始为空 str_data = '' # 循环累加2此, for i in range(1, 20): str_data += string.ascii_letters str_data = str_data + string.digits + string.digits # 按随机数取获取随机字符串 eamil_q = ''.join(random.sample(str_data,num)) eamil_h = random.choice(eamil_list) # 把前缀和后缀进行拼接 em_name = eamil_q + eamil_h # 输出对应用邮箱 return em_name def save_emaildata(elist): #打开一个文件(newline='', 在新生成的行里直接写,不设置的话每行数据间就会有空行) file = open('eamilname.csv', 'w', newline='') # 需要先创建csv编辑器 cw = csv.writer(file) # 从列表中一次取出数据,存入文件 for i in elist: cw.writerow([i]) # 关闭文件 file.close() if __name__ == '__main__': elist = [] min_num = int(input('请输入最小值:')) max_num = int(input('请输入最大值:')) count = int(input('请输入需要的个数:')) # 邮箱后缀 eamil_hz = ['@qq.com', '@163.com', '@139.com', '@sohu.com', '@aliyun.com', '@189.com', '@hotmail.com', '@gmail.com', '@sina.com', '@yahoo.com'] for i in range(1,count+1): e_name = get_email(min_num,max_num,eamil_hz) # 存入列表中 elist.append(e_name) # 调用写入csv功能 save_emaildata(elist)
-
- 代码运行流程图:
- 代码:
-
- 面向过程与面向对象概念了解:
- 面向过程,把输入输出放到main主函数中,处理-放到自定义函数中
- 图示:
- 面向对象:把属性,处理,封装到类中
- 图示:
- 图示:
- 面向过程与面向对象概念了解:
- 面向对象的封装:
- 类的设计分析脑图:
-
- 类的设计图,调用流程图:
- 代码:
-
# 面向对象进行邮箱数据获取的设计实现 # v2版 # 导入库 import csv import string import random # 类的定义 class create_emaildata(): # 在类的初始化方法中定义属性 def __init__(self,minlen,maxlen,count): self.minlen = minlen self.maxlen = maxlen self.count = count self.erex = ['@qq.com', '@163.com', '@139.com', '@sohu.com', '@aliyun.com', '@189.com', '@hotmail.com', '@gmail.com', '@sina.com', '@yahoo.com'] self.emaillist = [] # 定义获取邮箱数据的方法 def get_emaildata(self): # 在指定长度内生成一个随机数 num = random.randint(self.minlen,self.maxlen) # 设定初始为空 str_data = '' # 循环累加2此, for i in range(1, 20): str_data += string.ascii_letters str_data = str_data + string.digits + string.digits # 按随机数取获取随机字符串 eamil_q = ''.join(random.sample(str_data, num)) eamil_h = random.choice(self.erex) # 把前缀和后缀进行拼接 emaildata = eamil_q + eamil_h # 输出对应用邮箱 self.emaillist.append(emaildata) # 定义保存邮箱数据方法 def save_file(self): # 打开一个文件(newline='', 在新生成的行里直接写,不设置的话每行数据间就会有空行) file = open('eamilname.csv', 'w', newline='') # 需要先创建csv编辑器 cw = csv.writer(file) # 从列表中一次取出数据,存入文件 for i in self.emaillist: cw.writerow([i]) # 关闭文件 file.close() if __name__ == '__main__': # 赋值 minlen = 5 maxlen = 10 count = 10 # 实例化对象 emobj = create_emaildata(minlen,maxlen,count) # 需要先获取cout属性值 count = emobj.count # 定义变量,循环调用 for i in range(1,count+1): emobj.get_emaildata() # 调用保存文件方法 emobj.save_file()
-
- 类的设计分析脑图:





浙公网安备 33010602011771号