1、需要掌握
#1 查看对象下面有哪些属性 class Foo: pass obj=Foo() print(dir(obj)) #obj.下面都有哪些属性 #2 计算商 和余数 print(divmod(10,3)) #(3,1) (商,余数) #3 打印 索引 对应循环取出的可迭代对象里的值 for i,v in enumerate(['a','b','c']): print(i,v) #4 直接拿出字符串里的表达式 res=eval('1+2') print(res) #5 hash(不可变类型) ——》得到哈希值 #6 help() #查看文档注释 #7 判断一个对象是不是一个类的实例 class Foo: pass obj=Foo() isinstance(obj,Foo) #8 判断是不是列表 print(isinstance([],list)) #以前的做法===不推荐使用,type不是干这事的 print(type([]) is list) #9 reversed()反转 #10 zip()拉链函数,把两个可迭代对象拼凑成一个个小元组形式 v1='hello' v2=[1,2,3,4] res=zip(v1,v2) print(res)#<zip object at 0x000000000216F4C0> print(list(res))#[('h', 1), ('e', 2), ('l', 3), ('l', 4)] #11 __import__ # import 'time' x=__import__('time') x.sleep(3)#就直接可以用了,因为'time'是字符串不是time #12 pow(a,b,c)的意思是: 计算a**2%c 的余数***** print(pow(10,2,3)) #打印出1 意思就是 10**2%3余数是1 #__str__方法会在对象被打印时自动触发 #__del__会在对象被删除时自动触发
2、只是了解
#1 进制转换 print(bin(10))#10-2 0b1010 print(oct(10))#10-8 0o12 print(hex(10))#10-16 0xa #2 判断是否能调用,类、函数,绑定方法,静态方法等等 class Foo: pass print(callable(Foo)) #3 ascii码和数字之间转换 print(chr(65))# A 数字转换为ascii码 print(ord('A')) #65 ascii码转换为数字 #4 不可变集合 s=frozenset({1,2,3}) #5 repr 在交互式环境下敲代码回车一下子直接出来结果就是在底层调用了__repr__ #6 str 在print()的时候底层调用了__str__ 所以打印的结果都是字符串类型的就是这个道理 #7 round()四舍五入,有一个特殊的除外 #8 slice 切片 用于批量操作比较方便 s=slice(1,4,2) l1=[1,2,3,4,5] l2=[11,33,55,88] print(l1[s]) print(l2[s])
3、反射 里面的四种内置函数(掌握)
class Teacher: def __init__(self,full_name): self.full_name =full_name t=Teacher('Egon Lin') # hasattr(object,'name') hasattr(t,'full_name') # 按字符串'full_name'判断有无属性t.full_name # getattr(object, 'name', default=None) getattr(t,'full_name',None) # 等同于t.full_name,不存在该属性则返回默认值None # setattr(x, 'y', v) setattr(t,'age',18) # 等同于t.age=18 # delattr(x, 'y') delattr(t,'age') # 等同于del t.age
---34---