第26天

面向对象试题
1、类的属性和对象的属性有什么区别?
2、面向过程编程与面向对象编程的区别与应用场景?
3、类和对象在内存中是如何保存的。(参考上课时画的图联想着写)
4、什么是绑定到对象的方法,、如何定义,如何调用,给谁用?有什么特性
5、简述面向对象三大特性:
6、什么是新式类,什么是经典类,二者有什么区别?什么是深度优先,什么是广度优先?
7、解释多态、多态性、鸭子类型
8、如下示例, 请用面向对象的形式优化以下代码
在没有学习类这个概念时,数据与功能是分离的,如下

def exc1(host,port,db,charset):
conn=connect(host,port,db,charset)
conn.execute(sql)
return xxx

def exc2(host,port,db,charset,proc_name)
conn=connect(host,port,db,charset)
conn.call_proc(sql)
return xxx

每次调用都需要重复传入一堆参数

exc1('127.0.0.1',3306,'db1','utf8','select * from tb1;')
exc2('127.0.0.1',3306,'db1','utf8','存储过程的名字')

9、下面这段代码的输出结果将是什么?请解释。
class Parent(object):
x = 1

class Child1(Parent):
pass

class Child2(Parent):
pass

print(Parent.x, Child1.x, Child2.x)

Child1.x = 2
print(Parent.x, Child1.x, Child2.x)

Parent.x = 3
print(Parent.x, Child1.x, Child2.x)

10、定义课程类,实例化出python、linux、go三门课程对象
课程对象独有的特征:
课程名=‘xxx’
周期=‘3mons’
价格=3000

课程对象可以:
1、查看课程的详细信息

11、用面向对象的形式编写一个老师类, 老师有特征:编号、姓名、性别、年龄、等级、工资,老师类中有功能
1、生成老师唯一编号的功能,可以用hashlib对当前时间加上老师的所有信息进行校验得到一个hash值来作为老师的编号
def create_id(self):
pass
2、获取老师所有信息
def tell_info(self):
pass

3、将老师对象序列化保存到文件里,文件名即老师的名字,提示功能如下
def save(self):
with open('老师的名字','wb') as f:
pickle.dump(self,f)

4、从文件夹中取出存储老师对象的文件,然后反序列化出老师对象,提示功能如下
def get_obj_by_id(self,name):
return pickle.load(open(name,'rb'))

12、抽象老师类与学生类得到父类,用继承的方式减少代码冗余

13、基于面向对象设计一个对战游戏并使用继承优化代码,参考博客
http://www.cnblogs.com/linhaifeng/articles/7340497.html#_label1

14、多重继承的执行顺序,请解答以下输出结果是什么?并解释。

class A(object):
def init(self):
print('A')
super(A, self).init()

class B(object):
def init(self):
print('B')
super(B, self).init()

class C(A):
def init(self):
print('C')
super(C, self).init()

class D(A):
def init(self):
print('D')
super(D, self).init()

class E(B, C):
def init(self):
print('E')
super(E, self).init()

class F(C, B, D):
def init(self):
print('F')
super(F, self).init()

class G(D, B):
def init(self):
print('G')
super(G, self).init()

if name == 'main':
g = G()
f = F()

15、定义一个类:圆形,该类有半径,周长,面积等属性,将半径隐藏起来,将周长与面积开放
参考答案( http://www.cnblogs.com/linhaifeng/articles/7340801.html#_label4

posted @ 2021-09-01 20:38  BIye  阅读(61)  评论(0)    收藏  举报