zoukankan      html  css  js  c++  java
  • 20191011作业

    今日作业

    '''
    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方法用来从文件中反序列化出对象
    
    2、定义一个类:圆形,该类有半径,周长,面积等属性,将半径隐藏起来,将周长与面积开放
    		参考答案(http://www.cnblogs.com/linhaifeng/articles/7340801.html#_label4)
    	
    3、使用abc模块定义一个phone抽象类 并编写一个具体的实现类
    
    4、着手编写选课系统作业:http://www.cnblogs.com/linhaifeng/articles/6182264.html#_label15
    
    '''
    
    
    
    '''
    定义一个类:圆形,该类有半径,周长,面积等属性,将半径隐藏起来,将周长与面积开放
    参考答案(http://www.cnblogs.com/linhaifeng/articles/7340801.html#_label4)
    '''
    from math import pi
    class Circle:
        def __init__(self,radius):
            self.__radius = radius
    
        def perimeter(self):
            return (2*pi*self.__radius)
    
        def area(self):
            return (pi*(self.__radius**2))
    c = Circle(5)
    print(c.area())
    print(c.perimeter())
    
    '''
    使用abc模块定义一个phone抽象类 并编写一个具体的实现类
    '''
    import abc
    class Phone:
        def __init__(self,price,screen):
            self.price = price
            self.screen = screen
    
    class Mi(Phone):
        def __init__(self,price,screen):
            super().__init__(price,screen)
            self.brand = 'Mi'
    
        def show(self):
            print(f'{self.brand},{self.price},{self.screen}')
    
    class Iphone(Phone):
        def __init__(self,price,screen):
            super().__init__(price, screen)
            self.brand = 'IPHONE'
    
        def show(self):
            print(f'{self.brand},{self.price},{self.screen}')
    
    mi5 = Mi(2000,15)
    ip7 = Iphone(4000,4)
    mi5.show()
    ip7.show()
    
    HOST = '127.0.0.1'
    PORT = 3306
    DB_PATH = 'ss'
    
    import uuid
    import pickle
    import os
    
    class MySQL:
        def __init__(self,host,port):
            self.host = host
            self.port = port
            self.id = self.create_id()
    
        def save(self):
            if not self.is_exists:
                raise PermissionError('id has existed')
            file_path = f'{DB_PATH},{os.sep}{self.id}'
            pickle.dump(self,open(file_path,'wb'))
        
        @property    
        def is_exists(self):
            tag = True
            files = os.listdir(DB_PATH)
            for file in files:
                file_abspath = f'{DB_PATH}{os.sep}{file}'
                obj = pickle.load(open(file_abspath,'rb'))
                if self.host == obj.host and self.port == obj.port:
                    tag = False
                    break
            return tag
        
        @staticmethod
        def get_obj_by_id(id):
            file_abspath = f'{DB_PATH}{os.sep}{id}'
            return pickle.load(open(file_abspath,'rb'))
        
        @staticmethod
        def create_id():
            return str(uuid.uuid1())
        
        @classmethod
        def from_conf(cls):
            print(cls)
            return cls(HOST,PORT)
        
        conn = MySQL.from_conf()
        conn.save()
        
        conn1 = MySQL('127.0.0.1',3306)
        conn1.save()
        
        obj = MySQL.get_obj_by_id()
        print(obj.host)
            
    
  • 相关阅读:
    ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考
    ASP.NET Core 中文文档 第四章 MVC(3.1)视图概述
    ASP.NET Core 中文文档 第四章 MVC(2.3)格式化响应数据
    ASP.NET Core 中文文档 第四章 MVC(2.2)模型验证
    ASP.NET Core 中文文档 第四章 MVC(2.1)模型绑定
    ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览
    mysql 解除正在死锁的状态
    基于原生JS的jsonp方法的实现
    HTML 如何显示英文单、双引号
    win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)
  • 原文地址:https://www.cnblogs.com/agsol/p/11656491.html
Copyright © 2011-2022 走看看