易错知识点

  易错知识点总结                                                                                                   

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)
--输入,打印

 

posted @ 2018-09-06 16:44  团子emma  阅读(117)  评论(0)    收藏  举报