类的双下划线方法# __str__ 与__repr__

【Python】解密Python中的魔法方法:使用 __str__、__repr__、__call__等方法提升类的功能与灵活性 Python 中的魔法方法是一种强大的特性,它们允许开发者为类添加特殊行为,从而使类能够模拟内置对象或实现自定义行为。本文将深入探讨Python中常用的魔法方法,如 `__str__`、`__repr__`、`__call__` 等,通过丰富的代码示例详细解析这些方法的实现方式和应用场景。文章中会展示如何运用魔法方法使类支持多种表现形式、自定义输出、作为函数调用等功能。通过对这些方法的掌握,开发者可以提升代码的可读性、灵活性和可扩展性,深入理解Python的面向对象编程特性。 阅读详情

# __str__ 与__repr__
class School:
    def __init__(self,name,addr,type):
        self.name = name
        self.addr = addr
        self.type = type
        print('__init__...')

    def __repr__(self):
        return 'School(%s,%s)' %(self.name,self.addr)

    def __str__(self):
        return '(%s,%s)' %(self.name,self.addr)

s1=School('小猿圈','北京','私立')
print('from repr: ',repr(s1))
print('from str: ',str(s1))
print(s1) # 自动触发__str__
'''
str函数或者print函数调用时--->obj.__str__()
repr或者交互式解释器中调用时--->obj.__repr__()
如果__str__没有被定义,那么就会使用__repr__来代替输出
注意:这俩方法的返回值必须是字符串,否则抛出异常
'''


BLDC六步换相驱动实战:从霍尔真值表到PWM调速的代码实现 本文详细解析了BLDC六步换相驱动原理,从霍尔真值表解读到PWM调速的代码实现,提供了基于STM32的实战方案。重点介绍了霍尔信号解码、换相状态机设计以及PWM动态调速策略,帮助开发者快速掌握无刷电机驱动技术。 阅读详情

相关推荐

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6725

一文详解Python中的双下方法,真神奇

大家在写 Python 代码的时候有没有这样的疑问。为什么数学中的号,在字符串运算中却变成拼接功能,如结果为;而号变成了重复功能,如结果为。为什么某些对象能输出数据,而自定义的类对象却输出一堆看不懂的代码。不是因为系统做了特殊定制,而是 Python 中有一类特殊的方法,在某些特定的场合会自动调用。如,在字符串类中定义了方法后,当代码遇到字符串相加时,就会自动调用方法完成字符串拼接。因为这类特殊方法的方法名都是以双下划线开始和结束,所以又被称为。Python 中的很多,今天我们对它做个详解。Python中的

sixqingfeng的博客 1328

[多智能体强化学习] 王树森YouTube课程笔记

前言 近期在设计V2X资源分配任务下的状态空间和动作空间,可以说是一筹莫展,是自己菜,现在看来可能也是涉及到一些关于多智能体强化学习实现过程中过于细节的点,目前的知识储备还不够。因此打算用半周到一周的时间重电,希望之后能有进展。 本文内容来自于友人LX所推荐的油管教程,链接如下:多智能体强化学习,一共两节课40min左右。教程废话不多干货不少,老师的声音还好听,推荐直接去看原教程。 这里还要多一嘴,那就是对于强化学习来说,单主体和多主体的界限,在某种程度上来说是很模糊的,并不是场景中有多个主体需要..

观林望实的博客 3362

类的双下划线方法

类的双下划线方法。

LOVE_jianshen的博客 253

Ansys -PEmag 平面变压器仿真与circuit电路模型验证

ansys 软件集成了电路、磁路、PCB参数提取,结构参数提取等功能仿真,基于内置模块的功能参数的仿真后可以提取出主要关键参数,寄生参数,频域响应参数等。该软件的优势在于能够将所有的仿真参数导出为电路模型文件,可以在自带的模块中仿真也可以导出在其他第三方软件中仿真,比如matlab-simulink文件扥。主要介绍ANSYS插件的使用,对PEmag做了详细使用说明并通过案例得到对用的变压器参数;基于变压器参数再将其磁路模型导入到电路中进行建模仿真,实现PEmag与circuit的联合仿真。

weixin_41609745的博客 3014

保姆级教程:用YOLOv5s搞定钢材表面缺陷检测,从数据集NEU-DET到模型部署全流程

本文提供了一份详细的YOLOv5s钢材表面缺陷检测教程,涵盖从NEU-DET数据集处理到模型部署的全流程。针对工业环境中的实际限制,如计算资源有限和标注样本少等问题,提供了优化方案和实用技巧,帮助开发者快速实现高效的钢材缺陷检测系统。

weixin_30568591的博客 464

python中class __str__怎么用_python中下划线的作用

学习python的时候,我们经常碰到一些变量的变量名带单下划线/双下划线前缀或者后缀,然后会觉得这样的命名风格很奇怪。除了变量命名风格外,也会遇到下划线的表达式,也会让人摸不着头脑。今天我们就来看下,python中下划线的作用。忽略值这是我们经常遇到的情况,比如调用某个函数,该函数会返回一组值,可是我们想要的返回值可能只是里面的某个,比如某函数除了返回关键属性值外还会返回一个状态码,而程序里可能只...

weixin_39640008的博客 652

手把手教你学Simulink——基于Simulink的固态变压器(SST)多级协同控制

摘要:本文详细介绍了基于Simulink的固态变压器(SST)多级协同控制方法。SST作为新一代智能电网核心设备,通过AC-DC整流、DC-DC隔离和DC-AC逆变三级架构实现电能高效转换。针对多级耦合难题,提出能量-功率协同控制策略:纵向解耦电压环与功率前馈,横向联动级间功率指令。在Simulink中搭建10kV/400V系统模型,实现直流母线电压波动<2%的动态性能。特别设计了负载突变时的三级协同机制,通过虚拟惯性算法和前馈控制实现快速响应。文章包含完整的建模步骤、控制推导和参数设置,为电力电子工

MHD0815的博客 193

类中以双下划线开始的方法

*参考:https://docs.python.org/2/reference/datamodel.html#special-method-names 一 常用: (1)__init__ (2)__new__ (3)__del__ (4)__repr__ *等等 二 定制属性访问: (1)__getattr__ (2)__setattr__ (3)__delat

linux系统、网络编程和分布式计算 1551

【2026华为OD新规机考】最新套题持续更新【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】

可上练习华子OD、大厂真题绿色聊天软件戳od1441了解算法冲刺训练(备注【优快云】否则不通过)

weixin_48157259的博客 505

一次请求穿过的六道关卡:微服务基础组件的通信与IO、事件驱动、负载均衡、服务路由、API网关与配置协调

微服务的稳定性往往取决于看不见的基础组件。本文跟随一次下单请求,依次穿过API网关、服务路由、负载均衡与服务通信,再沿事件分支扇出,并从控制面审视配置中心。通信层剖析握手成本、连接复用、epoll与主从Reactor、心跳判活、退避抖动、截止时间与重试预算;事件层讲解编舞与编排、事务发件箱和幂等消费;均衡与路由对比静态与动态算法、路由链、全链路灰度与同区保底;网关讨论过滤器链与限流算法;配置部分给出四类配置、长轮询与共识协调,最后归纳五道防线。文中关键数据均来自可在Java8运行的演示程序。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

Python class类的头尾下划线__xy__、两个下划线__x、一个下划线_y的简单区别

类属性与方法 类的方法 在类的内部,使用def关键字定义方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数 类的私有方法 __private:两个下划线开头声明的方法为私有方法,不能在类地外部调用。在类的内部调用self.__private。 __private:两个下划线开头声明的属性为私有属性,不能在类的外部被使用或直接访问。在类内部的方法中使用时self._...

songlh1234的博客 1851

使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间

在泊松回归模型中,我们通常关注的是自变量对事件发生率的影响,而事件密度比(Incidence Rate Ratio,IRR)可以帮助我们理解不同自变量对事件发生率的相对影响。在本文中,我们将使用R语言来获取泊松回归模型所有系数的事件密度比的95%置信区间。通过以上步骤,我们可以使用R语言获取泊松回归模型所有系数的事件密度比的95%置信区间。为了获取事件密度比的置信区间,我们将使用。使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间。

BugCrusher的博客 1264

~~面向对象进阶(四)——双下划线方法~~

进击のpython 类的双下划线方法 双下划线方法是类的特殊方法,是由双下划线加方法名加双下划线进行定义的 而这样的写法就表示,它其实是有特殊意义的 (没有特殊意义我提他干撒,不是神经病嘛) 其实啊,双下划线方法更多是python的源码开发者使用的 他们在写源码的时候,会采用这种双下划线方法 但是我建议在开发的时候尽量少使用这种方法 那尽量少使用,为什么还要说呢? 这是因为,学一下这种方法,可...

爱吃西瓜的夏天 388

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Python中的魔法方法__repr__和__str__详解

当我们直接打印一个python类对象时,得到的通常是类似“”这样一段字符,无法获得对象的具体状态。这个时候我们就可以重新定义/重写对应类的魔术方法__repr__和__str__,使得我们在打印对象时能够获得对象的当前状态信息。

gemingxuan的博客 3587

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

str()与repr()和__str__与__repr__的区别

1.str()与repr()的区别 在python中,str()与repr()都可以使实现类型的转换,而我们最常用的是str(),什么时候repr使用? str():将值转化为适于人阅读的字符串的形式(给人看) repr():将值转化为供解释器读取的字符串形式(给机器看) 将 float 转换成 str float1 = 3.14 print('原型:', float1, type(float1)) # str()转换 str1 = str(float1) print('str()转换:', str1,

qq_41564918的博客 389

Python中__str__和__repr__方法的核心区别与工程实践

在Python面向对象编程中,`__str__`和`__repr__`是控制对象字符串化行为的两个关键特殊方法,属于Python数据模型协议的基础组成部分。其设计原理源于人机协作分工:`__str__`面向终端用户,强调可读性与业务表达;`__repr__`面向开发者与解释器,追求无歧义、可追溯及(理想)可复现性。这一机制直接支撑调试日志、交互式开发、第三方库集成等核心工程场景。正确实现二者不仅能提升代码可维护性,更是融入Python生态逻辑的必要实践。本文结合电商订单等真实案例,详解`__str__`与`

weixin_34252686的博客 314

Python __str__和__repr__方法详解:调试友好与用户友好的双协议设计

在Python对象模型中,__str__和__repr__是支撑可读性与可调试性的核心协议。__str__面向终端用户,强调自然语言表达与业务语义;__repr__面向开发者,要求无歧义、可重建、能被eval安全执行。二者共同构成Python的‘人机双模’输出契约,直接影响日志分析效率、pdb调试体验、Jupyter变量检查及API响应质量。掌握其设计原理(如repr的黄金公式ClassName(arg=val, ...))、字符串构建规范(优先f-string+!r)、嵌套控制(reprlib.Repr)

483

~~面向对象进阶(四):双下划线方法~~

进击のpython 类的双下划线方法 双下划线方法是类的特殊方法,是由双下划线加方法名加双下划线进行定义的 而这样的写法就表示,它其实是有特殊意义的 (没有特殊意义我提他干撒,不是神经病嘛) 其实啊,双下划线方法更多是python的源码开发者使用的 他们在写源码的时候,会采用这种双下划线方法 但是我建议在开发的时候尽量少使用这种方法 那尽量少使用,为什么还要说呢? 这是因为,学一下这...

爱吃西瓜的夏天 137

Python 魔术方法 __str__、__repr__ 和 __iter__

Python 语言提供了许多 **魔术方法(Magic Methods)**,也称为 **双下划线方法(Dunder Methods)**,它们以 `__` 开头和结尾,允许定义对象的特殊行为。其中,`__str__`、`__repr__` 和 `__iter__` 是非常常用的魔术方法,可以帮助更好地控制对象的字符串表示和迭代行为。本文将详细介绍这三个魔术方法的作用、使用方式,以及它们在实际开发中的应用场景。

986

python中那些双下划线开头得函数和变量

如果要创建自己的类,且对象之间的比较有意义,可以使用下面的特殊方法来实现比较。因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。要重建序列化对象,Python 需要创建一个和被序列化的对象看起来一样的新对象,然后设置新对象的所有属性。方法将总是被调用,哪怕是在 with 语块中引发了例外。“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用。

Python热爱者的博客 1407

python获取文件名中两条下划线之间的部分_Python 中的特殊双下划线方法

python类内部部分双下划线特殊方法__setattr__, __getattr__, __delattr__, hasattr __getattribute__ __getitem__(),__setitem__(), __delitem__()主程序如下:classFoo:def_inif(self,pname):self.pname=pnamedeffunc():print('i'm fu...

weixin_39673184的博客 550

Python对象打印优化:从object at 0x...到清晰的__repr__与__str__方法

在Python面向对象编程中,对象的字符串表示是调试和日志记录的基础。默认情况下,未定义特定方法的自定义类实例会输出类似object at 0x...的内存地址,这缺乏可读性。其原理在于Python对象模型中的__repr__和__str__魔术方法,它们分别提供面向开发者的官方表示和面向用户的友好表示。定义这些方法的技术价值在于提升代码可维护性、加速调试过程并增强日志信息的实用性。在应用场景上,无论是日常开发调试、复杂系统日志记录,还是数据类(如使用dataclasses)的快速原型设计,良好的字符串表示

weixin_33895475的博客 372

Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】

Python基础day08【面向对象(类、对象)】

upward 2942

python 类的双下线方法(魔术方法)

资料来源:https://book.apeland.cn/details/318/ 介绍 定义:双下线方法是类的特殊方法,是由双下划线加方法名加双下划线 方法名的具有特殊意义的方法,双下方法主要是python源码程序员使用的,我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更有益于我们阅读源码。 调用:不同的双下方法有不同的触发方式,就好比盗墓时触发的机关一样,不知不觉就触发了双下方法,例如:init 以下几个只需大概知道的双下线方法 len方法 class A: def __len__.

岁月的博客 597

小猿圈python学习-类的刷双下线方法

定义:双下线方法是类的特殊方法,是由双下划线加方法名加双下划线 方法名的具有特殊意义的方法,双下方法主要是python源码程序员使用的,我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更有益于我们阅读源码。 调用:不同的双下方法有不同的触发方式,就好比盗墓时触发的机关一样,不知不觉就触发了双下方法,例如:init 以下几个只需大概知道的双下线方法 len方法 class A: def le...

乐乐老师的博客 488

【Python知识地图】魔术方法:__init__、__str__和__repr__

在 Python 中,魔术方法(Magic Methods)是具有特殊用途的内置方法,它们以双下划线开头和结尾。这些方法使得对象行为更加直观和灵活。本文将详细介绍三个常用的魔术方法:__init__、__str__ 和 __repr__,以及它们的具体用途和实现方式。

科技改变人类,技术成就未来 1172
上一篇: 动态加载模块 与异常处理 type动态创建一个类
下一篇: 1静态方法、类方法、属性方法的区别,通过代码来体现 2如何通过反射往一个类里添加一个方法? 3请通过代码实现反射判断当前模块里是否有一个Dog类 4写一个小脚本,不断接收用户指令,根据指令动态导入指定
Python_bh
博客等级 码龄7年 11粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值