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

python cls的使用

import threadingclass Test:# new方法用于创建类的实例def __new__(cls, *args, **kwargs):print("__new__:", cls.__class__.__name__)return object.__new__(cls) # 返回实例给init self参数# init用于初始化类的实例,实例由new方法传递过来的,即这里selfdef __init__(self):print("__init__:", self.__class__.__name__)t = Test()# __new__方法主要用于继承一些固定类型
class MyInt(int):def __new__(cls, value):return int.__new__(cls, value)if None:it = MyInt(10)print(it)from enum import Enum, unique
import enum@unique
class StrEnum(Enum):OK = enum.auto(), "success"ERROR = enum.auto(), "fail"@propertydef code(self):return self.value[0]@propertydef msg(self):return self.value[1]def emsg(name, msg=None):if isinstance(name, str):return StrEnum.ERROR.code, nameelif isinstance(name, StrEnum):return name.code, name.msgreturn StrEnum.OK.code, StrEnum.OK.msgprint(StrEnum.OK.value)
print(emsg(StrEnum.ERROR))
print(emsg("hello"))# 实现单例模式
def Single(cls):instances = {}lock = threading.RLock()def get_instance(*args, **kwargs):with lock:if cls not in instances:instances[cls] = cls(*args, **kwargs)return instances[cls]return get_instanceclass Conf:def __init__(self, glb):self._glb = glb@Single
class MyConf(Conf):def __init__(self, value, glb):self.value = valueConf.__init__(self, glb)@Single
class MyConf1(Conf):def __init__(self, value, glb):self.value = valueConf.__init__(self, glb)@Single
class ConfFactory:def __init__(self, glb):self._glb = glbdef instance(self, type):if type == 1:return MyConf(10, self._glb)elif type == 2:return MyConf1(20, self._glb)if None:conf = ConfFactory(2).instance(1)print(conf.value, conf._glb)conf1 = ConfFactory(2).instance(2)print(conf1.value, conf._glb)
http://www.lryc.cn/news/372629.html

相关文章:

  • idea中maven下载依赖缓慢解决方法
  • JS 中的各种距离 scrollTop?clientHeight?
  • 继承-进阶-易错点
  • 【图论应用】使用多路图(multigraph)对上海地铁站点图建模,并解决最短路径问题
  • RabbitMQ安装配置,封装工具类,发送消息及监听
  • iOS接入Flutter
  • 【ubuntu】用户添加root权限
  • 设计通用灵活的LabVIEW自动测试系统
  • C# WinForm —— 35 StatusStrip 介绍
  • 如何应对生活中的不确定性:仁者安仁,知者利仁。
  • C#面:请解释C#接口的显式实现有什么意义
  • STM32项目分享:智能窗帘系统
  • 【算法-力扣】72. 编辑距离(动态规划)
  • Spring 系统架构图
  • 同三维T80005EHS-4K60 4K60 HDMI/SDI编码器
  • React state(及组件) 的保留与重置
  • flask返回的数据怎么是转义后的字符串啊
  • C++17并行算法与HIPSTDPAR
  • 【什么是几度cms,主要功能有什么】
  • 组合和外观模式
  • 设置服务器禁止和ip通信
  • 中文技术文档的写作规范(搬运)
  • 「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中(一)
  • Python使用策略模式生成TCP数据包
  • 无文件落地分离拆分-将shellcode从文本中提取-file
  • MySQL 日志(一)
  • XML 编辑器:功能、选择与使用技巧
  • 单例模式(设计模式)
  • 提升你的编程体验:自定义 PyCharm 背景图片
  • SpringCloud与Dubbo区别?