• day 21 (作业)


    day 21 (作业)

    01

    import hashlib
    import pickle
    import os
    import time
    
    BASE_path = os.path.dirname(os.path.dirname(__file__))
    DB_path = os.path.join(BASE_path, 'db')
    
    
    class MySQL:
        def __init__(self, host, port):
            self.host = host
            self.port = port
            self.id = self.create_id()
            self.file_path = os.path.join(DB_path, f'{self.id}.pkl')
    
        def create_id(self):
            num = hashlib.md5()
            num.update(f'{time.strftime("%y-%m-%d")}{self.host}{self.port}'.encode('utf-8'))
            return num.hexdigest()
    
        @property
        def save(self):
            if self.get_obj_by_id(self.id):
                print('')
                raise PermissionError('对象已存在')
            with open(f'{self.file_path}', 'wb') as fw:
                pickle.dump(self, fw)
                return '创建成功'
    
        @staticmethod
        def get_obj_by_id(id):
            get_path = os.path.join(DB_path, f'{id}.pkl')
            if not os.path.exists(DB_path):
                os.mkdir(DB_path)
            if not os.path.exists(get_path):
                return False
            with open(get_path, 'rb') as f:
                msg = pickle.load(f)
            return msg.id
    
    
    aa = MySQL('ccc', 'add')
    print(aa.save)
    bb = MySQL.get_obj_by_id('c0e3f48daca0263144f9de81c01d2d4f')
    print(bb)
    
    

    02

    import math
    
    
    class Round:
        def __init__(self, radii):
            self.__radii = radii
            self.girth = self.__radii * 2 * math.pi
            self.acreage = self.__radii ** 2 * math.pi
    
    
    def check(obj):
        print('周长为;', obj.girth)
        print('面积为;', obj.acreage)
    
    
    while True:
        choice = input('输入半径;')
        if choice == 'q':
            break
        choice = float(choice)
        o1 = Round(choice)
        check(o1)
    
    

    03

    import abc
    
    class Phone:
        @abc.abstractmethod
        def show(self):
            print('显示画面。。。')
            
        @abc.abstractmethod
        def communicate(self):
            print('进行通话。。。')
            
        @abc.abstractmethod
        def photograph(self):
            print('拍摄照片。。。')
    class Iphone(Phone):
        
        def show(self):
            print('显示画面。。。')
    
        def communicate(self):
            print('进行通话。。。')
    
        def photograph(self):
            print('拍摄照片。。。')
    
  • 相关阅读:
    RTP 与RTCP 解释. 含同步时间戳
    Linux命令之ar
    函数参数的传递问题(指针的指针)
    传指针和传指针引用的区别/指针和引用的区别(本质)
    gdb optimized out错误解决
    实时视频应用之QoS关键技术分析
    中国大陆地区桌面操作系统占比
    一句命令查询 当前目录下面不同文件前缀的数量 并且进行排序
    一致性哈希算法和Go语言实现
    频率之外谁重要?计算机存储系统解析(转载)
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11656947.html
Copyright © 2020-2023  润新知