• day 21作业


    今日作业

    '''
    0、课堂代码理解,并敲两遍以上 (技术的牛逼是靠量的积累)
    
    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 pickle
    import os
    import uuid
    from day21 import settings
    '''
    settings.py内容
    HOST='127.0.0.1'
    PORT=3306
    DB_PATH=r'D:pycharmlaorichangday21cof'
    '''
    DB_PATH=r'D:pycharmlaorichangday21cof'
    class MYSOL:
        def __init__(self,host,port):
            self.id=self.create_id()
            self.host=host
            self.port=port
    
        def create_id(self):
            return str(uuid.uuid1())
    
        def is_exict(self):
            tag=True
            files=os.listdir(DB_PATH)
            for line in files:
                files_abspath=os.path.join(DB_PATH,line)
                # obj=pickle.load(open((files_abspath,'rb'))
                with open(files_abspath,'rb') as fr:
                    obj=pickle.load(fr)
                if self.port==obj.port and self.host==obj.host:
                    tag=False
                    break
            return tag
    
        def save(self):
            if not self.is_exict():
                # raise ('对象已存在')
                print('对象已存在')
            else:
                files_abspath=os.path.join(DB_PATH,self.id)
                pickle.dump(self,open(files_abspath,'wb'))
    
        def get_obj_by_id(self):
            files_abspath=os.path.join(DB_PATH,self.id)
            print(pickle.load(open(files_abspath,'rb')).__dict__)
    
    
        def from_conf(self):
            return self(settings.HOST,settings.PORT)
    
    conn=MYSOL.from_conf(MYSOL)
    conn.save()
    conn.get_obj_by_id()
    
    
    
    2、定义一个类:圆形,该类有半径,周长,面积等属性,将半径隐藏起来,将周长与面积开放
    		参考答案(http://www.cnblogs.com/linhaifeng/articles/7340801.html#_label4)
    		
    import math
    class Circle:
        def __init__(self,r):
            self.__r=r
    
        def area(self):
            return math.pi*self.__r**2
    
        def perimeter(self):
            return 2*math.pi*self.__r
    
    c=Circle(10)
    print(c.area())#314.1592653589793
    print(c.perimeter())#62.83185307179586		
    		
    	
    3、使用abc模块定义一个phone抽象类 并编写一个具体的实现类
    import abc
    class Phone(metaclass=abc.ABCMeta):
        @abc.abstractmethod
        def ff(self):
            pass
    
        @abc.abstractmethod
        def dd(self):
            pass
    
    class shouji(Phone):
        def ff(self):
            print('showtime')
    
        def dd(self):
            print('call')
    
    xiaomi=shouji()
    xiaomi.dd()#call
    xiaomi.ff()#showtime
    
    
    4、着手编写选课系统作业:http://www.cnblogs.com/linhaifeng/articles/6182264.html#_label15
    
    '''
    
  • 相关阅读:
    oracle基于归档的增量异地恢复 --异地新增数据文件问题
    数据库运行在非归档模式下,数据文件被误删的解决方法
    Archive log restore using RMAN for Logminer (http://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=26816)
    Rsync文件同步服务器配置
    商业研究(17):以小见大,看互联网经济(4个股权众筹平台,4个领域,10个项目,8个图)
    商业研究(17):以小见大,看互联网经济(4个股权众筹平台,4个领域,10个项目,8个图)
    商业研究(16):实体经济之殇,互联网经济之困?
    商业研究(16):实体经济之殇,互联网经济之困?
    JVM——Java虚拟机架构
    Unity高像素截图
  • 原文地址:https://www.cnblogs.com/zqfzqf/p/11656718.html
Copyright © 2020-2023  润新知