【Python总结】- 2022/3/25 Bruce

基础

String字符串相关

index()方法 检测字符串中是否包含子字符串 str.index(str, beg=0, end=len(string))

find()方法 找不到会返回-1

index() 找不到会抛异常 ValueError: substring not found

','.join

startswith()

endswith()

异常处理

try: 

  xxx

except Exception as ex:

  xxx

finally: 

  xxx

# 抛出异常

rasie MyException('Error')

 

类方法/静态方法

 函数集合

zip(list1, list2) 

 双重for

[] 是 list() 的 3倍

import timeit

timeit.timeit('[]', number=10**7)

 

__new__ / __init__

 

函数

因为逗号 表示一个元组,后面 kwargs 参数 为空

 对于字符串的格式化

时间

格式化

%y 两位数的年份

%Y 四位数的年份

%m 月份

%d 月份内的一天

%H 24小时制小时数

%I 12小时制小时数

%M 分钟数

%S 秒

 %p 本地A.M / P.M的等价符

%Z 当前时区的名称


正则

 

 


 

 

函数的位置参数

 内置函数

 

判断子类与父类

issubclass(SonClass, FatherClass)

 判断一个对象是否是一个类的实例

isinstance(s, class)

对对象属性的访问

 

文件目录相关

dirs = os.listdir(path)

// py

import py

// 当前目录

current = py.path.local()

// 路径下所有parts

dirs = current.dirpath().realpath().parts() //从最短路径到最长 e.g: <class 'list'>: [local('C:\\', local('C:\\Users'),....]

dirs.sort(reverse=True)  // 反转排序

// os.walk

os.wark(top, topdown=True, οnerrοr=None, followlinks=False)

得到1个三元tupple(dirpath, dirnames, filenames)

dirpath: str

dirnames: list

filenames: list

要得到全路径,需要使用os.path.join(dirname, filename)


AOP和装饰器

在运行时,编译时,类和方法加载时,动态的将代码切入到类的指定方法,指定位置上的编程思想就是面向切面的编程

切面:切入到指定类指定方法的代码片段

切入点:切入到哪些类,哪些方法

优点: 对原有代码毫无入侵性

装饰器

经常被用于有切面需求的场景,比较经典的有插入日志,性能测试,事务处理

作用:就是为已经存在的对象添加额外的功能。

这里就得提到 Python函数的概念:函数即对象

1.可以赋值给一个变量

2.可以在其他函数里定义

3.可以返回给另一个函数

4.可以作为参数传递

 用法

 @decorator 简写

装饰器里传入参数

 

 只有去真正调用 decorated_function()  后面有() 才会去输出装饰器里的方法

 

Python自身提供的几个装饰器: 像property, staticmethod

类装饰器

 Note:  使用 __call__ (不是__callable__)


Example

运行时间统计

 错误重试或者超时重试

 


单例模式

1修改__new__(cls)静态方法

 

 


生成器

列表的容量有限,创建了一个100万个元素的列表,仅访问前面几个元素,造成空间浪费

如果列表元素可以按照某种算法推算出来,在Python种,这种一边循环一边计算的机制,称为生成器 Generator

使用场景:

1)当我们需要一个公用的,按需生成的数据

2)某个事件执行一部分,另一部分在某个事件发生后再执行下一部分,实现异步

注意事项: generator函数在允许使用return,但return后不允许有返回值

是可迭代对象

g = (x * x for x in range(10))

for n in g:
  print(n)

  定义生成器的另一种写法 就是函数中包含yield关键字

 

 

Example

 

 

生成器表达式 把 [] 换成 ()

 高级应用

 

 


lambda 关键字,

语法: lambda arguments: expression

1不需要return 返回任何值

2不要忘记优先考虑列表推导式

numbers = [2, 1, 3, -3]

[x for x in numbers if x % 2]

list(filter(lambda x: x%2, numbers))  # 0 为false , [1, 3, -3]

filter, map, reduce为内置函数

Example

 


使用setup.py 打包库

setuptools

 setup.py 文件

 

 find_packages

 数据文件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值