1.切片:[a:b:c],其中a是startIndex,b是endIndex,c是步长,负责控制方向,c正值为从左到右,startIndex应该在endIndex左边,否则返回空字符串或空列表,空元组.c为负值方向从右到左,a仍然是startIndex,应该在endIndex的右边,否则返回空字符串或空列表,空元组.
2.python内置函数isinstance(object,(类型1,类型2,......))可以判断对象的类型是不是符合类型集合里面的类型,函数返回值bool类型,第二个参数可以是个元组,也可以使某个对象
3.默认参数必须指向不变对象
#Python函数在定义的时候,默认参数L的值就被计算出来了,即[]
#因为默认参数L也是一个变量,它指向对象[],每次调用该函数,
#如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。
- #所以,定义默认参数要牢记一点:默认参数必须指向不变对象!
def A(L=[]):
L.append('NULL')
return L
print("连续执行函数A的结果:")
print(A()) #结果:['NULL']
print(A()) #结果:['NULL', 'NULL']
4.Python内置的enumerate函数可以把一个list变成 索引-元素对,这样就可以在for循环中同时迭代索引(下标)和元素(key)本身
5.@functools.wraps(func)可以保持func经过装饰器装饰之后,func.__name__属性不变
6.创建类的执行流程:
1.遇到class关键词,执行type的__init__方法,创建Foo类这个对象
2.遇实例化对象(obj=Foo()),执行type里的__call__方法
3.在call方法里调用Foo类的__new__方法(负责创建对象)
4.执行Foo类的__init__方法(初始化)
7.枚举
from enum import Enum,unique
@unique #加上后值唯一
class Weekend(Enum):#继承 Enum类
MON=123
SUN=15
print(Weekend.MON)#获取不到值
print(Weekend.MON.value)#获取到值
print(Weekend["MON"].value)
print(Weekend(123))