标签:类型 wan get 路径 调用 mysq localtime class open
‘‘‘
定义MySQL类
1、对象有id、host、port三个属性
2、定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一
3、提供两种实例化方式,方式一:用户传入host和port方式 方式二:从配置文件中获取
4、为对象定制方法,save和get,save能自动将对象序列化到文件中,文件好为id,文件路径为配置
文件中DB_PATH,;get方法用来从文件中反序列化出对象
‘‘‘
#知识点:
#1、str.encode(‘utf-8‘) 将字符串转换为字节码 decode() 将字节码转换为字符串
#2、hashlib.md5()是需要传入字节码类型的,之后调用其digest方法得到其hash值,或者调用其hexdigest()方法得到16进制的hash值
#3、settings.DB_PATH :显示该文件的目录 :F:\wangkc\day07
#4、os.sep 属性 :表示执行操作系统的文件分隔符
import settings,hashlib,time,os,pickle
class MySQL:
def __init__(self,host,port):
self.id=self.create_id()
self.host=host
self.port=port
@classmethod
def from_conf(cls):
return cls(settings.HOST,settings.PORT)
@staticmethod
def create_id():
m=hashlib.md5(str(time.clock()).encode(‘utf-8‘))
return m.hexdigest
def save(self):
file_name=r‘%s%s%s‘ % (settings.DB_PATH,os.sep,self.id)
pickle.dump(self,open(file_name,‘wb‘))
def get(self):
file_name=file_name=r‘%s%s%s‘ % (settings.DB_PATH,os.sep,self.id)
return pickle.load(open(file_name,‘rb‘))
‘‘‘
知识点:
1、__str__(self) 方法,在实例化对象后,直接打印对象,一般会打印出该对象的内存地址,在该类定义类__str__方法后
要打印对象首先会找到该方法,该方法会return 一个字符串类型的对象。以从中得到该对象的有用信息
2、@classmethod用法示例
3、time.localtime()获得时间后,用t.tm_year,t.tm_mon,t.tm_mday来获得具体的年、月、日
‘‘‘
import time
class Date:
def __init__(self,year,mon,day):
self.year=year
self.mon=mon
self.day=day
@classmethod
def now(cls):
t1=time.localtime()
return cls(t1.tm_year,t1.tm_mon,t1.tm_mday)
class EuroDate(Date):
def __str__(self):
return ‘year:%s,mon:%s,day:%s‘ % (self.year,self.mon,self.day)
p=EuroDate.now()
print(p) #year:2017,mon:6,day:17
标签:类型 wan get 路径 调用 mysq localtime class open
原文地址:http://www.cnblogs.com/wangkc/p/7041122.html