每日面试题

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()

 

posted @ 2018-09-05 21:25  Roc_Atlantis  阅读(225)  评论(0编辑  收藏  举报