易错知识点
易错知识点总结
1 主动调动其它类成员
class F3(object): def f1(self): ret = super().f1() print(ret) return 123 class F2(object): def f1(self): print("123") class F1(F3,F2): pass obj = F1() obj.f1() # 123 None
2 print 打印的问题
print(1,2) #1 2
3, lambda
# lst = [lambda x:x+i for i in range(10)] # print(lambda x:x+1) #<function <lambda> at 0x00968420> # print(lst)#[<function <listcomp>.<lambda> at 0x00AC2A98>,...] # print(type(lambda x:x+0)) # print(lst[3](5)) #14 # print(lst[3](6)) #15 # print(lst[3](7)) #16 # print(lst[3](8)) #17 # print(lst[1](8)) #17 # print(lst[2](8)) #17
a = [] for i in range(10): q = lambda m:m+i a.append(q) print(a[1](7)) #16 print(a[1](7)) #16 print(a[2](7)) #16 print(a[3](7)) #16
只要遇见列表和匿名函数for循环,合在一起就要注意了,
a = []
for i in range(10):
q = lambda m:m+i
print(q(1)) #1,2,3,4,5,6,7,8,9,10
a.append(q)
print(a[0](1)) #10
4 py2 和py3的区别
---编码\字符串 字符串: py2: unicode s = u"root" 本质上unicode存储(万国码) (str/bytes) s = "root'' 本质上是字节存储 py3: str s = "root'' 本质上unicode存储(万国码) bytes s = b"root'' 本质上是字节存 编码:
py2:
默认ascii编码,文件头可以修改 #-*-encoding:utf-8-*-
py3:
默认utf-8编码
---继承
py2:
有经典类和新式类 深度优先
py3:
只有新式类 广度优先 c3算法
--范围
PY2: range\xrange
py3: range(相当于py2的xrange)
--输入,打印

浙公网安备 33010602011771号