python - 包装 和 授权】的更多相关文章

包装 # 包装(二次加工标准类型) # 继承 + 派生 的方式实现 定制功能 # 示例: # class list_customization(list): #重新定制append方法,判断添加的数据类型是否是str类型. def append(self, object): # print(type(object)) if type(object) is str: super().append(object) else: print("添加类型错误...") a = "XXX…
背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个<利用Python+163邮箱授权码发送邮件>的博客,但是那篇文章是没有带附件的,因此,我想到了爬虫完毕之后,再执行一段发送邮件的代码,把爬虫保存的TXT文件通过邮件发送到我的邮箱中,需求开始明确了,就开始分析和写代码实现吧. 分析 SMTP(Simple Mail Transfer Protocol),即简单邮件传…
使用 python 编写一个授权登录验证的模块 我们编写的思路: 1.登录的逻辑:如果用户名和密码正确,就返回 token . 2.生成 token 的逻辑,根据用户名,随机数,当前时间 + 2 小时 3.然后放在 users 中密码的后面,每次都不一样 4.验证 token 的步骤,取出以后,解码 得到用户名,去和 users 中的 token 比较,(只会和最近的 token 比较,之前的不比较,也就是之前的失效了) 然后再验证是否过期. 源代码: from flask import Fla…
包装:python为大家提供了标准数据类型,以及丰富的内置方法,其实在很多场景下我们都需要基于标准数据类型来定制我们自己的数据类型,新增/改写方法,这就用到了我们刚学的继承/派生知识(其他的标准类型均可以通过下面的方式进行二次加工) # 包装(二次加工标准类型) # 继承 + 派生 的方式实现 定制功能 1.重新定义append方法 2.定制新的功能 class List(list): def append(self,object): #append类型必须是字符串 if type(object…
包装 1.二次加工标准类型(包装) class List(list): def append(self, a_objcet): if type(a_objcet) is str: super().append(a_objcet) else: print('请传入字符转类型') l1 = List('hello') l1.append(123) l1.append('world') print(l1) 运行结果: 请传入字符转类型 ['h', 'e', 'l', 'l', 'o', 'world'…
# 编辑者:闫龙 # 基于授权定制自己的列表类型,要求定制的自己的__init__方法, # 定制自己的append:只能向列表加入字符串类型的值 # 定制显示列表中间那个值的属性(提示:property) # 其余方法都使用list默认的(提示:__getattr__加反射) class MyList: def __init__(self,*args):#自定义__init__函数 self.list = list(args)#*args会将多个值变为元组,咱们在这里把它再变成列表传递给sel…
双下划线开头的attr方法,都是类内置的方法. 一. 如果没有在类里定义这三个方法,调用的时候就调用类内置的默认的方法 class Too: pass # 类没有定义这三个属性,就用系统默认的方法 t1 = Too() print(t1.x) # 只有在属性不存在时, 会自动触发__getattr__ # AttributeError: 'Too' object has no attribute 'x' del t1.x # 删除属性时会触发 __delattr__ # AttributeErr…
背景 前段时间写了个自动打卡的脚本,但是脚本不够完善,我需要知道,打卡到底成没成功,因此,我想到了用Python执行完代码之后,再执行一段发送邮件的代码.需求开始明确了,就开始分析和写代码实现吧. 分析 SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. 代码实现 import smt…
def func(): print("func body") def f1(arg): print("f1:",arg) def wrapper(b): print("f1 wrapper:",b) return b return wrapper def f2(f): print("f2:",f) def wrapper(arg): print("f2 wrapper:",arg) f() return w…
关于有道云笔记复制的东西不能直接copy到博客园,可以选择使用txt文件做个媒介 1.appium 2.monkeyrunner 3.uiautomator2 前面两种种方式都要加载androidsdk,当然就要还有java环境. Androidsdk是安卓开发工具包,adb,monkeyrunner,uiautoviewer等常用的工具都在其中. 安装的时候不要都安装,只安装tools就可以,…