规范使用:
- 类和对象
- 模块导入,模块内部参数是:
if __name__ == "__main__":
- 导入包(需要使用的公共代码模块):创建python包,里面放共同模块
- 异常捕获优化:自定义异常
class MyError(Exception): # 异常捕获的类
def __init__(self, length, min_len): # length为用户输入的密码长度,min_len为规定的最小长度
self.length = length
self.min_len = min_len
# 设置抛出异常的描述信息
def __str__(self):
return "你输入的长度是%s,不能少于%s" % (self.length, self.min_len)
def main():
try:
con = input("请输入密码:") # 获取用户输入的密码
l = len(con) # 获取用户输入的密码长度
if l < 6:
raise MyError(l, 6) # 长度低于设定的6位数则引发异常
except Exception as ss: # 有错误则提示
print(ss)
else:
print("您的密码输入完毕") # 没有错误则执行
main()
-
定时任务:xxx
-
容器/迭代对象/生成器/装饰器:
- 迭代器(iterator):是一种可以遍历集合(如列表或字典)的一种对象
iter() or iter()
next() or next()
- 生成器:就是一个特殊的迭代器,是一个可迭代对象
next()
yield()
ps:函数里面用yield()进行惰性计算,外面用for循环输出
def count_up_to(max):
count = 0
while count < max:
yield count
count += 1
# 使用生成器
counter = count_up_to(5)
for num in counter:
print(num)
- 装饰器:装饰器的作用就是为已经存在的对象添加额外的功能
对于有参数的,*args 和 **kwargs 允许你在函数中接收任意数量的位置参数和关键字参数
# 普通的位置参数、可变数量的位置参数(元祖);关键字参数(字典)
def make_greeting(greeting, *args, **kwargs):
name = ' '.join(args)
title = kwargs.get('title', '')
if title:
title = f", {title}"
print(f"{greeting}, {name}{title}!")
# 调用示例
make_greeting("Hello", "John", "Doe", title="Mr.")
- 内置装饰器:staticmethod,classmethod,property
@property 用于将类的方法转换为只读属性
@staticmethod 用于定义静态方法
@classmethod 用于定义类方法,该方法接收类作为第一个参数(通常命名为 cls),而不是实例。这使得方法可以修改类级别的属性