4.16作业

1、定义MySQL类(参考答案:http://www.cnblogs.com/linhaifeng/articles/7341177.html#_label5)

  1.对象有id、host、port三个属性

  2.定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一

  3.提供两种实例化方式,方式一:用户传入host和port 方式二:从配置文件中读取host和port进行实例化

  4.为对象定制方法,save和get_obj_by_id,save能自动将对象序列化到文件中,文件路径为配置文件中DB_PATH,文件名为id号,
保存之前验证对象是否已经存在,若存在则抛出异常,;get_obj_by_id方法用来从文件中反序列化出对象

import os
import time
import pickle
import hashlib
import settings

class Mysql:
    def __init__(self,host,port):
        self.id = self.creta_id()
        self.host =host
        self.port = port

    @staticmethod
    def creta_id():
        m = hashlib.md5()
        m.update(str(time.clock()).encode(‘utf-8‘))
        return m.hexdigest()

    def save(self):
        path = os.path.join(settings.DB_path,‘%s.pickle‘ %self.id)
        if os.path.isfile(path):
            raise IOError(‘对象已存在‘)
        else:
            with open(path,‘wb‘) as f:
                pickle.dump(self,f)

    @staticmethod
    def get_obj_by_id(id):
        path = os.path.join(settings.DB_path, ‘%s.pickle‘ %id)
        if os.path.isfile(path):
            with open(path,‘rb‘) as f:
                return pickle.load(f)
        else:
            raise IOError(‘对象不存在‘)

    def tell(self):
        print(‘id:%s,host:%s,port:%s‘ %(self.id,self.host,self.port))

    @classmethod
    def from_conf(cls):
        return cls(settings.HOST,settings.PORT)

# mysql = Mysql(‘127.0.0.1‘,‘3309‘)
# mysql = Mysql.from_conf()
# mysql.save()
# mysql.tell()
# f = Mysql.get_obj_by_id(‘30565a8911a6bb487e3745c0ea3c8224‘)
# f.tell()

作业1

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

import math
class Round:
    def __init__(self,radius):
        self.__radius = radius
    @property
    def radius(self):
        return self.__radius

    @radius.setter
    def radius(self,x):
        self.__radius = x

    def perimeter(self):
        round_perimeter = math.pi *(self.__radius * 2)
        return round_perimeter

    def area(self):
        round_area = math.pi * (self.__radius * self.__radius)
        return round_area

round1 = Round(3)
print(round1.perimeter())
print(round1.area())
round1.radius = 4
print(round1.perimeter())
print(round1.area())

作业2

原文地址:https://www.cnblogs.com/guodengjian/p/8856668.html

时间: 2025-01-16 12:55:11

4.16作业的相关文章

2017.3.16作业

作业一: 1)  将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) 2)  将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加) 3)  将/1.txt./2.txt两个文件打包为/1.tar 4)  使用gzip命令压缩1.txt文件名为1.txt.gz 5)  解压缩1.txt.gz 6)  使用bzip2压缩1.txt压缩后文件名为1.txt.bz2 7)  解压缩1.txt.bz2 8)  解包1.tar,解包后文件存放到/tmp目录

9.16作业 甘燚

1 NSLog(@"char-%zu",sizeof(char)); 2 3 NSLog(@"int-%zu\n,float-%zu\n,double-%zu\n",sizeof(int),sizeof(float),sizeof(double)); 4 5 NSLog(@"long-%zu\n,longlong-%zu\n,short-%zu\n",sizeof(long),sizeof(long long),sizeof(short)); 6

10.16 作业

<!DOCTYPE html><html><head> <title></title> <meta charset="utf-8"> <style type="text/css"> .a{  margin-left: 50px;  width: 1052px;  height: 581px; } .a1{  width: 1052px;  height: 128px;  backgr

20150202--XML下01

万能的数据传输格式XML下 目录 万能的数据传输格式XML下............................................................................................. 1 一.PHP XML解析原理..................................................................................................... 3 1.为什么需要

五、代理模式详解

7.代理模式 7.1.课程目标 1.掌握代理模式的应用场景和实现原理. 2.了解静态代理和动态代理的区别. 3.了解CGLib和JDK Proxy的根本区别. 4.手写实现定义的动态代理. 7.2.内容定位 都知道 SpringAOP 是用代理模式实现,到底是怎么实现的?我们来一探究竟,并且自己仿真手写 还原部分细节. 7.3.代理模式定义 代理模式(ProxyPattern)是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型模式. 在某些情况下,一个对象不适合或者不能直接引用另一个

便是见到前方那

以可得量力而凌厉刀芒横扫http://weibo.com/2015.09.16/p/1001603887144312655250http://weibo.com/2015.09.16/p/1001603887144321088567http://weibo.com/2015.09.16/p/1001603887144325238274http://weibo.com/2015.09.16/p/1001603887144325282921http://weibo.com/2015.09.16/p/

对于这黑马之会

是想不出究竟还只是区区一角啊http://weibo.com/2015-09.16/p/1001603887574727917787http://weibo.com/2015-09.16/p/1001603887574727946828http://weibo.com/2015-09.16/p/1001603887574732112097http://weibo.com/2015-09.16/p/1001603887574732112103http://weibo.com/2015-09.16/

【2016.3.16】作业 VS2015安装&单元测试(1)

首先说下本机配置. CPU:Intel Atom x5-z8300 @1.44GHz 内存:2GB 操作系统:Windows10 家庭版 32位 硬盘:32GB 然后开始怒装visual studio 2015 专业版. 首先会看到一个.iso文件的镜像,在Windows10 下可以直接用资源管理器打开. 打开后运行vs_professional. 然后出现下图界面 等了10分钟 安装位置建议不变,安装类型要选择自定义,如果选择默认,只安装了C#/VB Web,使用win32控制台要重新下载插件

信息系统项目3月16日作业

3月16日作业: 一,本章课程重点: 项目整体管理的过程包括如下内容: 项目启动 制定初步的范围说明书 制定项目管理计划 指导和管理项目的执行 监督和控制项目 整体变更控制 项目收尾 启动前加入背景介绍 收尾后加入经验教训就是论文论项目整体管理大纲 项目启动:项目立项以后就要正式启动项目,启动是以书面的.正式的形式肯定项目的成立于存在,同时以书面正式的形式为项目经理进行授权 项目正常的作用和内容 项目章程是正式批准一个项目的文档,或者是批准现行现行项目是否进入下一阶段的文档.项目章程应当由项目组