创建一个mysql类
import uuid
import os
import settings
import pickle
class MySQL:
def __init__(self,host,port):
self.host=host
self.port=port
self.id=self.create_id()
def create_id():
return str(uuid.uuid1())
def save(self):
if not self.is_exists:
raise PermissionError('对象已存在')
file_abspath=os.path.join(settings.DB_PATH,f'{self.id}.pickle')
pickle.load(open(file_abspath,'wb'))
@property
def is_exists(self):
tag=True
files=os.listdir(settings.DB_PATH)
for file in files:
file_abspath=f'{settings.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'{settings.DB_PATH}{os.sep}{id}'
return pickle.load(open(file_abspath,'rb'))
@classmethod
def from_conf(cls):
return cls(settings.HOST, settings.PORT)
定义一个类:圆形,该类有半径,周长,面积等属性,将半径隐藏起来,将周长与面积开放
class Round:
def __init__(self, radius):
self.__radius = radius
self.perimeter = self.radius_perimeter
self.area = self.radius_area
@property
def radius_area(self):
return 3.14 * self.__radius * self.__radius
@property
def radius_perimeter(self):
return 2 * 3.14 * self.__radius
使用abc模块定义一个phone抽象类 并编写一个具体的实现类
import abc
import time
class Phone(metaclass=abc.ABCMeta):
@abc.abstractmethod
def call(self):
pass
@abc.abstractmethod
def msg(self):
pass
@abc.abstractmethod
def clock(self):
pass
class Iphone(Phone):
number=12345678910
def __init__(self,user_name,password):
self.user_name=user_name
self.password=password
def call(self):
user_inp=input('请输入电话号码:').strip()
if not user_inp==self.number:
print('电话拨打中')
time.sleep(3)
print('您呼叫的电话已关机')
return
time.sleep(3)
print('请输入正确号码')
def msg(self):
user_inp=input('请输入要发送的内容:').strip()
user_inp1=input('请输入联系人:').strip()
print('消息发送中')
time.sleep(1)
print('消息发送成功')
def clock(self):
user_inp = input('请输入设定时间:').strip()
print('设置成功')
tim=int(user_inp)
time.sleep(tim)
print('滴滴滴滴滴')
def withdraw(self):
while True:
print('''
1 打电话
2 发消息
3 闹钟
q 退出''')
func_dic={
'1':self.call,
'2':self.msg,
'3':self.clock
}
choice=input('请输入你想要的功能:').strip()
if choice=='q':
return
if not choice in func_dic:
print('请重新输入')
continue
func_dic.get(choice)()
a=Iphone('cyt',123)
a.withdraw()