1.关于作用域面试题(2018-09-05)
题目答案解析:
2018-09-06
sorted和sort reversed和reverse
9.07 统计列表的那次出现次数
给列表中的字典按照年龄排序
9.10 求字符串中连续不重复的最长字段的长度?
9.12 数据库删除重复记录最小ID的记录
9.12 三位数乘积生成的回文数最大值
9.18 函数传参问题
9.19-1 类中可变类型和不可变类型
1 class Vector: 2 def __init__(self,x,y): 3 self.x = x 4 self.y = y 5 def __mul__(self, other): 6 self.x = self.x * other 7 self.y = self.y * other 8 return self 9 def __str__(self): 10 return "(%s,%s)"%(self.x,self.y) 11 a = Vector(4,3) 12 print(id(a),a) 13 b = a*5 14 print(id(b),b) 15 16 class Vector: 17 def __init__(self,x,y): 18 self.x = x 19 self.y = y 20 def __mul__(self, other): 21 x = self.x * other 22 y = self.y * other 23 return Vector(x,y) 24 def __str__(self): 25 return "(%s,%s)"%(self.x,self.y) 26 a = Vector(4,3) 27 print(id(a),a) 28 b = a*5 29 print(id(b),b) 30 可变类型:值变化,id不变,是因为该类型拥有“能修改自身的属性”的内置方法 31 不可变类型:值变化,id也要跟着变,是因为该类型的内置方法不修改自身的值,而是用自身的值去创建了一个新的对象 32 所以,给可变类型、不可变类型下一个定义就是:可变类型是拥有“能修改自身的属性”的内置方法的类型,不可变类型则反之。 33 上面的两个Vector类,虽然实现的相同功能,但第一个是可变类型,第二个是不可变类型。
9.20-2 关于类的继承问题
1 class A(object): 2 def go(self): 3 print('go A go!') 4 def stop(self): 5 print('stop A stop!') 6 def pause(self): 7 raise Exception("Not Implemented") 8 9 class B(A): 10 def go(self): 11 super(B, self).go() 12 print('go B go!') 13 14 class C(A): 15 def go(self): 16 super(C, self).go() 17 print('go C go!') 18 def stop(self): 19 super(C, self).stop() 20 print('stop C stop!') 21 22 a = A() 23 b = B() 24 c = C() 25 26 #说明下列代码的输出结果 27 28 a.go() 29 b.go() 30 c.go() 31 32 a.stop() 33 b.stop() 34 c.stop() 35 36 37 a.pause() 38 b.pause() 39 c.pause()