宇文氏 发表于 2018-8-14 13:28:35

Python持久化管理 pickle random 面向对象编程 Python3-10740501

import pickle  
import random
  
#author Q237356573
  

  
#.........Base
  
class Base_number():
  
    def __init__(self,all,Prime,single):
  
      self._all=all
  
      self._Prime=Prime
  
      self._single=single
  
    def Show_all(self):
  
      return self._all
  
    def Show_Prime(self):
  
      return self._Prime
  
    def Show_single(self):
  
      return self._single
  

  

  
#操作对象
  
class Writ_base_number():
  
#all 全部
  
    def set_all(self,all):
  
      self._all=all
  
    def get_all(self):
  
      return self._all
  
#素数[]
  
    def set_Prime(self,Prime):
  
      self._Prime=Prime
  
    def get_Prime(self):
  
      return self._Prime
  
#质数[]
  
    def set_single(self,single):
  
      self._single=single
  
    def get_single(self):
  
      return self._single
  

  
#Writ_File_catalog文件目录
  
    def set_catalog(self,catalog,wb):
  
      self._catalog=open(catalog,wb)
  
    def get_catalog(self):
  
      return self._catalog
  
    def show_catalog(self):#测试
  
      print("存入目录:"+self._catalog.name)
  

  
#测试 Writ obj参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。
  
# protocol的值还可以是1或2,表示以二进制的形式序列化
  
    def Writ_obj_file(self,writobj,catalog):
  
      pickle.dump(writobj,catalog,0)
  
#测试 Read obj
  
    def Read_obj_file(self):
  
      returnpickle.load(self._catalog)
  

  

  
#计算函数
  
    def for_Three_add(self):
  
      obj_name=[]
  
      f=Writ_base_number()#实例对象
  
      mark=['A:','B:','C:']
  
      for b in mark:
  
            num=random.sample(,25) #不重复随机数
  
            f.set_all(b+str(num))#存入全部
  
            A=[]
  
            B=[]
  
            for a in num:
  
                if a%2 != 0:
  
                  A.append(a) #质数
  
                else:
  
                  B.append(a) #素数
  
            #writ 封装对象
  
            f.set_Prime(B)
  
            f.set_single(A)
  
            obj_name.append(Base_number(f.get_all(),f.get_Prime(),f.get_single()))
  
      return obj_name
  

  
'''
  
#mail writ方法
  
Operation=Writ_base_number()
  
Operation.set_catalog('c:\\file2.pkl','wb')
  
base_obj=Operation.for_Three_add()
  
Operation.Writ_obj_file(base_obj,Operation.get_catalog())
  
Operation.get_catalog().close()
  

  
'''
  
#mailread 读出
  
R=Writ_base_number()
  
R.set_catalog("c:\\file2.pkl",'rb')
  
obj_list=R.Read_obj_file()
  
R.get_catalog().close()
  
#迭代
  
for a in obj_list:
  
    print("全部数_"+str(a.Show_all()))
  
    print("素数"+str(a.Show_single()))
  
    print("质数"+str(a.Show_Prime()))
  
    print()
页: [1]
查看完整版本: Python持久化管理 pickle random 面向对象编程 Python3-10740501