文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python持久化管理   pickle

2023-01-31 08:07

关注

python 面向对象编程  

看了一下python也可以用面向对象 就试着将java写法 就在python上试了一下 顺便熟悉一下语法  还不错。。。 希望大神指点更简结 灵巧 写法 请留求评论j_0002.gif

 

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()


wKiom1j_gHvSdajYAAByZJcgmOQ729.png-wh_50

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯