__str__方法】的更多相关文章

交互模式下调用对象的__repr__()方法,这个方法表示的是一个编码 >>> u"国庆节快乐"u'\u56fd\u5e86\u8282\u5feb\u4e50' 用print+对象是调用对象的__str__方法>>> print u"国庆节快乐"国庆节快乐>>> 定义一个类,重写__repr__和__str__方法 >>> class P():...     def __repr__(self…
一 .内置函数补充 1.isinstance函数: isinstance(obj,cls)检查obj是否是类 cls 的对象 使用该函数来判断一个函数的类型 2. issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo) 二.反射 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China…
在python类中有个__str__的特殊方法,该方法可以使print打印出来的东西更美观,在类里就可以定义,如下代码: class Test: def __init__(self, name, job): self.name = name self.job = job def __str__(self): return 'Name:' + self.name instance = Test('xiaoming', 'Teacher') print(instance) 代码中print(inst…
有时候我们想让屏幕打印的结果不是对象的内存地址,而是它的值或者其他可以自定义的东西,以便更直观地显示对象内容,可以通过在该对象的类中创建或修改__str__()或__repr__()方法来实现(显示对应方法的返回值) 注意:__str__()方法和__repr__()方法的返回值只能是字符串! 关于调用两种方法的时机 使用print()时 使用%s和f'{}'拼接对象时 使用str(x)转换对象x时 在上述三种场景中,会优先调用对象的__str__()方法:若没有,就调用__repr__()方法…
一. 引言 记得刚开始学习Python学习字符串相关内容的时候,查了很多资料,也做了些测试,对repr和str这两个函数的返回值老猿一直没有真正理解,因为测试发现这两个函数基本上输出时一样的.到现在老猿也不能说自己掌握Python的基础知识了,但到现在至少能说清楚repr和str这两个函数分别是干什么用的了. 前面几章分别介绍了__repr__方法和__str__方法的语法.作用.重写,并间或的进行了两者的一些关系说明,他们其实还对应了两个功用与方法一模一样的Python内置函数repr和str…
一. 引言 上节结合案例介绍了重写__repr__方法的关注点,重写__repr__方法的要点是要准确的输出开发人员关注的信息,并便于开发人员使用相关信息.而__str__方法是为最终用户返回类的相关信息,因此需要相关信息容易理解,更需要开发者在自定义类的过程中重写__str__方法. object类提供的__str__方法,只是简单输出模块名.类名以及对象的ID信息,老猿认为实际上就是在__str__方法直接调用object类的__repr__方法,不过没去研究代码核实.不管怎样,这个信息根本…
只要定义了__str__(self)方法,那么就会打印从这个方法中return的数据 class Car: def __init__(self, newWheelNum, newColor): self.wheelNum = newWheelNum self.color = newColor def __str__(self): msg = "My color:" + self.color + ", my wheel num:" + str(self.wheelNu…
"""str()就是可以自定义输出返回值,必须是str字符串""" class Dog: def __init__(self, name): self.name = name def __str__(self): # 把对象放在print()方法中输出时,就会自动调用str()方法 return '呵呵呵%s' % self.name # 只能返回字符串 # overrides method :覆盖方法 重写了 dog1 = Dog('来福')…
看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190> # 看到了么?上面打印类对象并不…
__init__:当实例化一个类的时候,首相会执行__new__方法创建一个对象,接下来会执行__init__方法对对象的一些属性进行初始化. 所以如果对象有属性,一般会直接写在__init__方法里面: class Test: def __init__(self, a, b): self.a = a self.b = b test = Test(a, b) __str__:当实例化一个类之后,就有了一个对象的引用,如 test = Test() 这个时候如果直接print(test),输出的是…