当前位置: 首页 > wzjs >正文

男女做污的网站网站优化外包顾问

男女做污的网站,网站优化外包顾问,住建部关于epc总承包文件,ps切片以后 怎么做网站知识点回顾 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义 作业:复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等&…

知识点回顾

  1. 类的装饰器
  2. 装饰器思想的进一步理解:外部修改、动态
  3. 类方法的定义:内部定义和外部定义

作业:复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等,未来再过几个专题部分我们即将开启深度学习部分。

一、单例模式装饰器

目标:确保一个类只能创建一个实例。

def singleton(cls):instances = {}  # 用字典存储类的唯一实例def wrapper(*args, ​**kwargs):if cls not in instances:  # 如果实例不存在,则创建instances[cls] = cls(*args, ​**kwargs)return instances[cls]  # 返回已有实例return wrapper# 使用示例
@singleton
class DatabaseConnection:def __init__(self, host):self.host = host# 测试
conn1 = DatabaseConnection("localhost:3306")
conn2 = DatabaseConnection("another_host")  # 不会生效,仍返回 conn1 的实例
print(conn1 is conn2)  # 输出 True
原理说明:
  1. singleton 是一个类装饰器,它通过闭包维护一个字典 instances
  2. 当类第一次被实例化时,会创建实例并存入字典;后续请求直接返回已有实例。
  3. 无论传递多少参数,后续实例化都会忽略参数并返回第一个实例(需注意参数一致性)
  4. 二、方法调用日志装饰器

    目标:自动记录类的初始化和方法调用。

    def log_class(cls):# 包装 __init__ 方法original_init = cls.__init__def __init__(self, *args, ​**kwargs):print(f"[LOG] 初始化 {cls.__name__},参数: args={args}, kwargs={kwargs}")original_init(self, *args, ​**kwargs)cls.__init__ = __init__# 包装所有其他方法for name, method in cls.__dict__.items():if callable(method) and name != "__init__":def make_logged_method(m):def logged_method(self, *args, ​**kwargs):print(f"[LOG] 调用方法 {cls.__name__}.{m.__name__}")return m(self, *args, ​**kwargs)return logged_methodsetattr(cls, name, make_logged_method(method))return cls# 使用示例
    @log_class
    class Calculator:def __init__(self, precision=2):self.precision = precisiondef add(self, a, b):return a + bdef multiply(self, a, b):return a * b# 测试
    calc = Calculator(precision=3)
    calc.add(2, 3)
    calc.multiply(4, 5)

    三、进阶:带参数的类装饰器

    如果需要动态配置装饰器行为(如是否启用日志),可以添加参数:

    def conditional_log(enable=True):def decorator(cls):original_init = cls.__init__def __init__(self, *args, ​**kwargs):if enable:print(f"[LOG] 初始化 {cls.__name__}")original_init(self, *args, ​**kwargs)cls.__init__ = __init__return clsreturn decorator# 使用示例
    @conditional_log(enable=False)  # 关闭日志
    class SilentClass:pass

http://www.dtcms.com/wzjs/355027.html

相关文章:

  • 重庆建筑信息网官网china东莞seo
  • 山西省建设局网站淘宝关键词指数查询
  • 怎么做别人可以上的网站百度最怕哪个部门去投诉
  • 深圳自适应网站制作怎么自己弄一个平台
  • 网站建设小程序网站网络营销
  • wordpress网站流量统计插件搜索seo优化
  • 十大购物网站排名腾讯推广平台
  • 兰州市疫情防控最新要求天津seo培训机构
  • 协会网站建站安卓aso优化工具
  • 一个网站多少钱深圳网络推广引流
  • 桂林网站设计如何利用互联网宣传与推广
  • 做违法网站会怎样零售客户电商网站
  • 织梦网站怎么把index.html去掉杭州seo推广服务
  • erp系统一套大概多少钱福州网站优化公司
  • 重庆网站设计系统湖南正规关键词优化首选
  • 前端页面设计流程seo技术培训山东
  • 漳州做网站设计免费网站怎么做出来的
  • 创建一个网站流程长春seo排名扣费
  • 国外做网站用的程序网站开发软件
  • 用js做网站的滚屏效果百度会员登录入口
  • 施工企业岗位证书有哪些seo推广公司有哪些
  • 石家庄网站开发公司电话推广方案经典范文
  • 蒙城网站建设鄞州seo整站优化服务
  • 南阳网站制作郑州网站开发公司
  • 义乌网站制作是什么网上代写文章一般多少钱
  • 农业建设信息网站网址查询站长工具
  • 江苏城乡建设部网站保定seo排名外包
  • 国内扁平化网站设计公司
  • 请人帮忙做淘宝网站多少钱西安百度seo推广
  • 厦门英文网站建设制作一个app软件需要多少钱