zoukankan      html  css  js  c++  java
  • 30-Python内置方法之__str__和__repr__

    定义一个类,然后实例化,观察打印结果:

     1 >>> class Person(object):
     2 ...     def __init__(self, name, age):
     3 ...         self.name = name
     4 ...         self.age = age
     5 ...         
     6 >>> p = Person("druid", 18)
     7 >>> p
     8 <Person object at 0x11044b160>  # 直接调用对象打印的是内存地址
     9 >>> print(p)
    10 <Person object at 0x11044b160>  # 用print打印仍然是内存地址

    在类中增加__str__方法,观察打印结果:

     1 >>> class Person(object):
     2 ...     def __init__(self, name, age):
     3 ...         self.name = name
     4 ...         self.age = age
     5 ... 
     6 ...     def __str__(self):
     7 ...         return "{}-{}".format(self.name, self.age)
     8 ...     
     9 >>> p1 = Person("druid", 18)
    10 >>> p1
    11 <Person object at 0x1105899e8>  # 直接调用对象打印的是内存地址
    12 >>> print(p1)
    13 druid-18  # 用print打印的是__str__返回的string

    在类中增加__repr__方法,观察打印结果:

     1 >>> class Person(object):
     2 ...     def __init__(self, name, age):
     3 ...         self.name = name
     4 ...         self.age = age
     5 ... 
     6 ...     def __repr__(self):
     7 ...         return "{}-{}".format(self.name, self.age)
     8 ...     
     9 >>> p2 = Person("druid", 18)
    10 >>> p2
    11 druid-18  # 直接调用对象打印的是__repr__返回的string
    12 >>> print(p2)
    13 druid-18  # 用print打印仍然是__repr__返回的string
  • 相关阅读:
    Window.ActiveXObject的用法 以及如何判断浏览器的类型
    PDO预处理
    *p=&a是把a的值赋给p,p=&a是把a的地址赋给p。
    牛客网
    关于stable_sort()和sort()的区别
    求最小公倍数
    成绩排序
    二叉树的存储、创建以及遍历
    关于sort函数的几种用法
    vector的用法
  • 原文地址:https://www.cnblogs.com/Druidchen/p/9329194.html
Copyright © 2011-2022 走看看