作业

1、下面这段代码的输出结果将是什么?请解释。
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) 1 1 1 # 父类的parent x=1, child1继承父类parent x=1, child2继承父类parent x=1.
1 2 1 # 父类的parent x=1, child1查找本身 x=2, child2继承父类parent x =1
3 2 3 # 父类的parent x=3, child1查找本身 x=2,child2继承父类parent x=3
2、多重继承的执行顺序,请解答以下输出结果是什么?并解释。
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() '''
新式类:G-D-A-B-F-C-B-D-A
'''
3、什么是新式类,什么是经典类,二者有什么区别?什么是深度优先,什么是广度优先?
新式类:
继承object的类都称之为新式类
python3中,子类不继承自定义的类,默认继承object
经典类:
在python2中,凡是没有继承object的类都是经典类
深度优先:
一直下去
1 经典类多继承搜索顺序(深度优先):
2 先深入继承树左侧查找,然后再返回,开始查找右侧
广度优先:
多继承搜索顺序
1 先在水平方向查找,再向上查找
4、用面向对象的形式编写一个老师类, 老师有特征:编号、姓名、性别、年龄、等级、工资,老师类中有功能。
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,id):
return pickle.load(open(id,'rb')) 5、按照定义老师的方式,再定义一个学生类 6、抽象老师类与学生类得到父类,用继承的方式减少代码冗余
import pickle
import time
import hashlib
from datetime import date,datetime class Teacher(object):
def __init__(self,name,sex,age,level,sal):
self.name = name
self.sex = sex
self.age = age
self.level = level
self.sal = sal def create_id(self):
res = datetime.today().strftime('%Y-%m-%d %X')
m = hashlib.md5
m.update(bytes(res,encoding='utf-8'))
self.id =str(m.hexdigit()) + str(self.name) + str(self.sex) + str(self.age) + str(self.level) + str(self.sal)
self.save() def tell_info(self):
print('''
编号:(self.number)
名字:(self.name)
性别:(self.sex)
年龄:(self.age)
等级:(self.level)
薪资:(self.sal)
''') def save(self):
with open(self.number, 'wb') as f:
pickle.dump(self, f) def get_obj_id(self,id):
return pickle.load(open(self.number,'rb')) class Student(): def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def tell_info(self):
print('''
姓名:(self.name)
年龄:(self.age)
性别:(self.sex)
''') stu = Student('老赵',24,'male') print(stu.name,stu.age)

day 20 作业的更多相关文章

  1. day 20作业

    目录 1.下面这段代码的输出结果将是什么?请解释. 2.多重继承的执行顺序,请解答以下输出结果是什么?并解释. 3.什么是新式类,什么是经典类,二者有什么区别?什么是深度优先,什么是广度优先? 4.用 ...

  2. SQL作业的操作全

    --定义创建作业 转自http://hi.baidu.com/procedure/blog/item/7f959fb10d76f95d092302dd.html DECLARE @jobid uniq ...

  3. SQL作业及调度创建

    转自:http://www.cnblogs.com/accumulater/p/6223909.html --定义创建作业 转自http://hi.baidu.com/procedure/blog/i ...

  4. 【MOOC操作系统】测试题大题-进程调度 先入先服务算法例题 【某多道程序系统供用户使用的主存为100K,磁带机2台,打印机1台,采用可变分区存储管理,静态方式分配外围设备(进程获得所需全部设备才能进入内容),忽略用户作业的I/O时间。采用动态分区、首次匹配法(从低地址区开始)分配主存,一个作业创建一个进程,且运行中不紧缩内存。作业调度采用FCFS算法,在主存中的进程采用剩余时间最短调度算法。】

    分析图: 答案: (1) 8 : 00作业1到达,占有资源并调入主存运行. 8: 20作业2和3同时到达,但作业2因分不到打印机,只能在后备队列等待.作业3资源满足,可进主存运行,并与作业1平分CPU ...

  5. 12-1 上午mysql 基本语句

    create table test( code varchar(20) primary key, name varchar(20)); 关键字primary key 主键非空 not nullfore ...

  6. 0527 python 基础01

    折行的处理 \>>> print "hi \... hello Lucy!"hi hello Lucy! 自然字符串,字符串加上r或R前缀指定>>&g ...

  7. document对象获取例子

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. python 函数动态参数,名称空间,global,nonlocal

    ##################################总结######################################动态参数 *args:位置参数动态传参,接收到的是元 ...

  9. Hibernate进行对象的增删改查

    首先我们看看hibernate手动配置步骤 (这个了解一点就可以了,以后是不会自己全部手动配置的) 1.    创建WEB项目 2       下载hibernate-release-4.3.11.F ...

随机推荐

  1. 运维笔记--ubuntu系统卸载指定版本的python

    1.卸载python3.5(指定相应的版本就可以,例:python2.7,下同) sudo apt-get remove --purge python3.5 2.完全卸载python3.5及其依赖软件 ...

  2. WebGL学习笔记(十):雾化

    雾化是指距离我们较远的物体看不清晰的情况,比如模拟大雾环境,或者模拟水下环境时会用到. 实现雾化的方式有很多种,我们这里使用的是线性雾化的方式: 线性雾化 线性雾化比较简单,我们算出每个像素点到摄像机 ...

  3. 解决support包引起的AndroidStudio编译报错

    {"kind":"error","text":"error: resource android:attr/colorError n ...

  4. Laya一个莫名其妙的报错laya.pathfinding

    版本2.2.0 莫名其妙,然后论坛查了下 把类库设置,不勾选这玩意就不报错了.

  5. [Golang] Gin框架学习笔记

    0x0 Gin简介 1.Gin 是什么? Gin 是一个用 Go (Golang) 编写的 HTTP web 框架. 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httpr ...

  6. Mysql操作命令(基础)

    创建数据库 CREATE DATABASE name; 显示所有数据库 SHOW DATABASES; 删除数据库 DROP DATABASE name; 选择数据库 USE DATABASENAME ...

  7. Oracle 实现表中id字段自增长

    Oracle 实现表中id字段自增长 最近正在学习Oracle的时候发现Oracle表中的字段不能像mysql中那样可以用auto increment修饰字段从而让id这种主键字段实现自增长. 那Or ...

  8. 华为交换机trunk端口更改access提示:Error: Please renew the default configurations.

    现象: 华为交换机接口由原来 trunk 接口更改 access 提示 Error: Please renew the default configurations. 解决方法: 在交换机视图模式下, ...

  9. web基础---->script标签的特殊使用

    今天要讲的就是怎样使用<script>去请求一个servlet,加载一些js资源以及额外的逻辑处理: 目录: JS的引入的几种方式 在script的标签中引入Servlet 动态引入JS的 ...

  10. linux CC攻击解决方法

    linux CC攻击1 由于不断的请求接口 导致带宽不足 然后不断的运行mysql语句 造成cpu饱和 这个时候服务器重负不堪 导致运行代码暖慢 导致入侵 一般采取的方法http://newmirac ...