zoukankan      html  css  js  c++  java
  • python中 __str__和__repr__

    如果要把一个类的实例变成 str,就需要实现特殊方法__str__():

    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)

    现在,在交互式命令行下用 print 试试:

    但是,如果直接敲变量 p

    似乎__str__() 不会被调用。

    因为 Python 定义了__str__()__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。

    有一个偷懒的定义__repr__的方法:

    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)
        __repr__ = __str__
    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)
        __repr__ = __str__

    直接敲变量 p

    输出:

    (Person: Bob, male)
  • 相关阅读:
    servlet
    过滤器
    拦截器
    logback
    hibernate(1)
    函数的关键字参数
    函数的不定长参数
    打印星形三角
    九九乘法表
    udp客户端收发数据流程
  • 原文地址:https://www.cnblogs.com/WhatTTEver/p/6928264.html
Copyright © 2011-2022 走看看