Python Day09 - Python进阶

编码规范

1.PEP8编码规范,以及开发中的一些惯例和建议

  • 代码编排:
    缩进4个空格,禁止空格与Tab混用
    行长80:防止单行逻辑过于复杂

  • import
    不要使用:from xxx import *
    顺序:1.标准库 2.第三方库 3.自定义库
    单行不要import多个库
    模块内用不到不要去import

  • 空格
    : , ;后面跟一个空格,前面无空格(行尾分号后无空格)
    二元操作符前后各一个空格,包括以下几类:
    1.数学运算符:+ - * / // = & |
    2.比较运算符:== != > < >= <= is nor in
    3.逻辑运算符:and or not
    4.位运算符:& | ^ << >>
    当=用于指示关键字参数或默认参数值,不要在其两侧是用空格

  • 适当添加空行
    函数间:顶级函数间空2行,类的方法之间空一行
    函数内:同一函数内的逻辑块之间,空一行
    文件结尾:留一个空行(Unix中\n是文件的结束符)

  • 注释:
    忌:逐行加注释,没有一个注释
    行内注释:单行逻辑过于复杂时添加
    块注释:一段逻辑开始时添加
    引入外来算法或者配置时须在注视中添加源连接,标明出处
    函数和类尽可能添加

  • 命名
    除非在lambda函数中,否则不要使用单字母的变量名(即使时lambda函数中的变量名也尽可能的有意义)
    包名、模块名、函数名、方法名全部使用小写,单词间用下划线连接
    类名、异常名使用CapWords(首字母大写)的方式,异常名结尾加Error或Wraning后缀
    全局变量尽量使用大写,一组同类型的全局变量要加上统一前缀,单词用下划线连接

  • 字符串拼接尽量使用join方式:速度快,内存消耗小
    join方式

  • 语义明确、直白

  • 程序的构建
    一个函数只能做一件事,并把这件事做好
    大的功能用小函数之间灵活组合来完成
    避免编写庞大的程序,”大“意味着体积庞大,逻辑复杂甚至混乱

  • 函数名必须有动词最好是do_something的句式,或者somebody_do_something句式

  • 自定义的变量名、函数名不要与标准库的名字冲突

* 和 **的用法

  • *args:返回元组
  • **kwargs:返回字典
  • 强制命名参数
    强制命名参数
    由上图可知强制命名参数传参时必须带上参数名

Python的赋值和引用

  • ==和is的区别:
    ==:判断的是值
    is:判断的是内存地址(即对象的id)
  • copy和deepcopy的区别:
    copy:只拷贝表层元素
    deepcopy:在内存中重新创建所有的子元素

函数闭包

函数闭包

装饰器

1.最简单的装饰器(没有参数)
装饰器
上图的运行过程:A() ----deco(先走装饰器)----func:A----return warp:warp()----"haha"

2.有参数的装饰器
案例:
有参数
上图的运行过程:A(lala,tata) ----deco(先走装饰器)----func:A----return warp:warp()----“登陆失败”----return func(n1,n2)就相当于A()----lala,tata

进程和线程

进程
注:进程是相互独立的

练习:

练习一:输入两个数字,装饰器的作用是求这两个数字的和;本函数的作用是打印这两个数字的和
练习一

练习二:流氓验证码:在使用装饰器的情况下,无论输入什么验证码都返回验证码错误;如果不使用,该正确就正确
流氓验证码
运行结果:
结果
正确
运行结果:
结果
练习三:检测某个时间段内(5秒)IP访问的次数,如果IP的访问次数超过10次,则返回404

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值