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('拍摄照片。。。')
原文地址:https://www.cnblogs.com/luocongyu/p/11656947.html