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

论文网站建设与运营拖曳式网站建设

论文网站建设与运营,拖曳式网站建设,移动网站建设价格便宜,如何与对方网站做相互链接Python 中的魔术方法(Magic Methods) 一、核心概念 命名规范:__xxx__(双下划线包围,如 __init__) 自动调用:由 Python 解释器在特定时机调用,而非用户手动调用。 目的:让自定义类支持运算符、内置函数、迭代、上下文管理等高级特性。 别名:Magic Methods / Dunder Me…

Python 中的魔术方法(Magic Methods)


一、核心概念

  • 命名规范__xxx__(双下划线包围,如 __init__
  • 自动调用:由 Python 解释器在特定时机调用,而非用户手动调用。
  • 目的:让自定义类支持运算符、内置函数、迭代、上下文管理等高级特性。
  • 别名:Magic Methods / Dunder Methods(Double UNDERscore)

二、常用魔术方法分类详解

1. 对象构造与析构

方法 说明 示例
__new__(cls, ...) 创建对象实例(先于 __init__),用于控制对象创建过程,常用于单例模式或不可变类型。 见下方示例
__init__(self, ...) 初始化对象,构造函数,设置实例属性。 def __init__(self, name): self.name = name
__del__(self) 析构函数,对象被销毁时调用(不保证立即执行,依赖垃圾回收)。慎用! def __del__(self): print("对象被销毁")
__new__ 示例(单例模式)
class Singleton:_instance = Nonedef __new__(cls, *args, **kwargs):if cls._instance is None:cls._instance = super().__new__(cls)return cls._instancedef __init__(self, value):self.value = values1 = Singleton(10)
s2 = Singleton(20)
print(s1 is s2)  # True —— 同一个对象
print(s1.value)  # 20 —— 最后一次初始化的值

⚠️ 注意:__new__ 是静态方法,第一个参数是 cls__init__ 是实例方法,第一个参数是 self

2. 对象表示与字符串

方法 说明 示例
__str__(self) str(obj)print(obj) 时调用,返回用户友好的字符串。 return f"Person: {self.name}"
__repr__(self) repr(obj) 或交互式解释器中直接输入对象时调用,返回开发者友好、无歧义的字符串,理想情况下应能 eval 重建对象。 return f"Person('{self.name}', {self.age})"
__format__(self, format_spec) 支持 format(obj, spec) 或 f-string 格式化。 见下方示例
__str__ vs __repr__ 示例
class Person:def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):return f"{self.name}, {self.age}岁"def __repr__(self):return f"Person(name='{self.name}', age={self.age})"p = Person("Alice", 30)
print(p)           # 调用 __str__ → Alice, 30岁
print(repr(p))     # 调用 __repr__ → Person(name='Alice', age=30)
__format__ 示例
class Temperature:def __init__(self, celsius):self.celsius = celsiusdef __format__(self, spec):if spec == "f":return f"{self.celsius * 9/5 + 32:.1f}°F"elif spec == "k":return f"{self.celsius + 273.15:.1f}K"else:return f"{self.celsius:.1f}°C"temp = Temperature(25)
print(f"{temp}")     # 25.0°C
print(f"{temp:f}")   # 77.0°F
print(f"{temp:k}")   
http://www.dtcms.com/a/569950.html

相关文章:

  • Jenkins持续集成入门指南:自动化构建与部署的最佳实践
  • 山西省建设信息网站汇点远程app下载安装
  • 阿里云手机网站建设打电话拉客户用网站做广告怎么做 好做吗
  • hexo做网站wordpress内容分页在哪改
  • 游戏网站后台建设美橙云建站
  • 数据备份策略:全量 / 增量 / 差异备份、备份周期规划
  • LeetCode 322. 零钱兑换
  • Redis黑马点评 Feed流
  • 域名后缀cn做网站河北手机网站建设
  • U-Net保姆级教程:从原理到医学细胞分割实战(PyTorch版)!
  • mini-bitcask学习笔记
  • 东莞网站建设公司哪家好电商平面设计主要做什么
  • 解决远程调用微服务之后无法通过上下文获取用户id问题
  • 网站代付系统怎么做大型网站seo策略
  • 国家住房城乡建设部网站住房和城乡建设部网站北京
  • 制作网站的程序网站查找工具
  • 网站建设 图片压缩网站开发多少费用
  • React Native App 自动检测版本更新完整实现指南
  • 网站建站是 什么企业网站托管运营
  • 字母象形的力量:单词速记之多种意象融合一体
  • xtuoj Binary
  • 南沙网站开发企业网站建设需要多少钱知乎
  • python 包 检测自己是否为 editable 模式安装的
  • ToB销售获客策略全解析:实现精准客户开发方法论
  • 成都医院手机网站建设湖北做网站找谁
  • 网站需求分析怎么写设计网站大全湖南岚鸿设计
  • css 画一个圆角渐变色边框
  • 网站路径问题国外h5建站
  • 数字营销技术应用网站大连网页搜索排名提升
  • 简化Java开发——Hutool工具使用案例