学习python,从入门到放弃(29)

2022/4/12 22:42:48

本文主要是介绍学习python,从入门到放弃(29),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

学习python,从入门到放弃(29)

设计模式

在IT行业中设计模式总共有23种,大致可以分为三大类分别是创建型、结构型和行为型。

设计模式是经过反复验证用于解决固定问题的固定套路。

  • 设计模式之单例模式

    单例模式的意思是一个类只能产生一个对象,用于节省资源,比如有一个类中有很多绑定给对象的方法,我们需要在很多地方使用它,那么不同的程序员来用不知道有没有产生对象,所以自己会创建一个新对象,如此往复则会造成资源的浪费。

    所以我们需要在类实例化对象的时候进行干涉 >>>: 元类

    单例模式:(可以有很多种编写方式)

    class Single(type):
        new_obj = None
    
        def __call__(self, *args, **kwargs):
            if not self.new_obj:
                obj = super().__call__(*args, **kwargs)
                self.new_obj = obj
                return self.new_obj
            return self.new_obj
    
    
    class MyClass(metaclass=Single):
        def __init__(self, name):
            self.name = name
    
    
    obj1 = MyClass('jason')
    obj2 = MyClass('tony')
    print(id(obj1), id(obj2))
    print(obj1.__dict__, obj2.__dict__)
    

pickle 模块

并且该模块只支持 python,兼容性很差。

大致用于,将对象保存到文件,并且取出来之后还可以使用对象的功能。

import pickle


class MyClass(object):
    school = 'school'

    def __init__(self, name):
        self.name = name

    def choose_course(self):
        print('%s正在选课' % self.name)


obj = MyClass('jason')
print(obj.school)
obj.choose_course()

# pickle可以
with open(r'%s' % obj.name, 'wb') as f:
    pickle.dump(obj, f)

with open(r'jason', 'rb') as f:
    data = pickle.load(f)
print(data)
print(data.name)
print(data.school)


这篇关于学习python,从入门到放弃(29)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程