python 面向对象编程  

看了一下python也可以用面向对象 就试着将java写法 就在python上试了一下 顺便熟悉一下语法  还不错。。。 希望大神指点更简结 灵巧 写法 请留求评论Python持久化管理   pickle   random   面向对象编程  Python3_持久化

 

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):
      return  pickle.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([i for i in range(1,100)],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()


Python持久化管理   pickle   random   面向对象编程  Python3_管理_02