python -【十】单例模式与工厂模式

一、单例模式

全局创建的实例只有一个,被称为单例

新建一个 StrTools.py 文件

python 复制代码
class StrTools:

    def revers(self, param):
        return param[::-1]


# 构建一个对象
str_tools = StrTools()

新建一个 test_str_tools.py 文件

python 复制代码
# 引入 StrTools 中定义的变量
from StrTools import str_tools

# 引入单例
s1 = str_tools
s2 = str_tools

print(f's1.id={id(s1)}')  # s1.id=1858205996944
print(f's2.id={id(s2)}')  # s2.id=1858205996944

"""
输出的两个对象 id 相同,表示两个对象是同一个
"""

二、工厂模式

通过工厂方法,创建对象,无需手动创建

python 复制代码
# 抽象类
class Person:
    pass

class Worker(Person):
    pass

class Student(Person):
    pass

class Teacher(Person):
    pass

# 工厂类
class PersonFactory:
    def get_person(self, p_type):
        if p_type == 'w':
            return Worker()
        elif p_type == 's':
            return Student()
        else:
            return Teacher()

# 创建工厂实例
f = PersonFactory()
worker = f.get_person('w')
student = f.get_person('s')
teacher = f.get_person('t')
相关推荐
QQ5885019820 小时前
Python_uniapp-心理健康测评服务微信小程序的设计与实现
python·微信小程序·uni-app
APIshop21 小时前
Java获取item_get-获得某书商品详情接口
java·开发语言·python
SNAKEpc1213821 小时前
深入理解PyQtGraph核心组件交互
python·qt·pyqt
人工智能AI技术1 天前
【Agent从入门到实践】25 主流向量数据库速览:Pinecone、Chroma、Milvus,本地/云端选型建议
人工智能·python
电商API&Tina1 天前
Python请求淘宝商品评论API接口全指南||taobao评论API
java·开发语言·数据库·python·json·php
地球没有花1 天前
调整warmup的batch优化tensorflow serving P99耗时毛刺
人工智能·python·tensorflow
hhy_smile1 天前
Python environment and installation
开发语言·python
莫非王土也非王臣1 天前
网页端的TensorFlow开发实践
人工智能·python·tensorflow
喵手1 天前
Python爬虫零基础入门【第七章:动态页面入门(Playwright)·第3节】优先 API:用 Network 找接口,回到 Requests(更稳定)!
爬虫·python·playwright·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·优先 api
我送炭你添花1 天前
Pelco KBD300A 模拟器:12.设备仿真与虚拟响应生成
python·自动化·运维开发