内置方法 __str__ __repr__
2024-09-03 13:39:10
内置方法(双下方法,魔术方法)
在不需要程序员定义,本身就存在的类中的方法就是内置方法
内置方法: __名字__
__init__ 不需要我们主动调用,而是在实例化的时候内部自动调用的,存在一种自动触发它的语法
__str__ __repr__
__str__
当你打印一个对象的时候 触发__str__
当你使用%s格式化的时候 触发__str__
str强转数据类型的时候 触发__str__
__repr__
repr是str的备胎
有__str__的时候执行__str__,没有实现__str__的时候,执行__repr__
repr(obj)内置函数对应的结果是 __repr__的返回值
当你使用%r格式化的时候 触发__repr__
class A:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def __str__(self):
return "str %s %s %s"%(self.name,self.age,self.sex)
def __repr__(self):
return "repr %s %s %s"%(self.name,self.age,self.sex)
a = A("lin",23,"男")
print(a) #str lin 23 男 #打印对象a时,自动执行str 方法,
# 当存在str时,直接打印就只执行str而不会执行repr方法,如果没有str就执行repr
print(repr(a)) #repr lin 23 男 可以通过调用来执行repr方法
print("%r"%a) #repr lin 23 男 通过%r也可以调用repr方法
print("%s"%a) #str lin 23 男 通过%s调用的是str方法
最新文章
- linux下使用多线程编写的聊天室
- TI CC2541增加一个可读写, 又可以Notify的特征字
- 学习JS中的小问题
- **CI两种方式查询所返回的结果数量
- Notepad++ 16进制编辑功能
- stl学习之字符串
- 笔记 postgresql oid同步
- MySQL JDBC的queryTimeout坑
- webupload-upload执行上传时,进入的路径与linux服务器上的不一致
- Storm入门-Storm与Spark对比
- JQuery 图片轮播,详细注释说明,让你一看就会!
- 汉诺塔III
- 【JAVA8】双冒号
- [EXP]phpBB 3.2.3 - Remote Code Execution
- Ubuntu 16.04安装Pycharm2017.1.1
- Git安装和基本使用(1)
- LibreOJ 6281 数列分块入门5
- CentOS 7通过Firewall开放防火墙端口
- ACE_Message_Queue和spawn实现(生产者/消费者)(V2.00)
- iOS UI-Lable标签、NStimer定时器和RunLoop超级死循环