当前位置: 首页 > 面试题库 >

如何为类对象创建自定义字符串表示形式?

呼延衡
2023-03-14
问题内容

考虑此类:

class foo(object):
    pass

默认的字符串表示形式如下所示:

>>> str(foo)
"<class '__main__.foo'>"

如何使它显示自定义字符串?


问题答案:

在类的元类中实现__str__()__repr__()

class MC(type):
  def __repr__(self):
    return 'Wahaha!'

class C(object):
  __metaclass__ = MC

print C

使用__str__,如果你说的是可读的字串,使用__repr__了明确的表示。



 类似资料:
  • 我喜欢使用enum类来尽可能避免硬编码值,但当涉及到字符串时,它会稍微复杂一点。我有一个设计,我想分享,我觉得是有点笨重,我会喜欢一些想法如何简化它。 欢迎提出任何意见。 编辑:我不使用字符串文字,因为它不会强制开发人员使用定义列表中的值。即使您希望它们使用字符串文字,它们仍然可以硬编码字符串。如果我在做一些疯狂的事情,我希望得到一些建设性的批评,而不是仅仅否决这个问题。

  • 问题内容: 这个问题已经被问过了,但是我想API改变了,答案不再有效。 无法完成,因为TopLevelWindow受保护,并且诸如扩展/实现窗口之类的事情很荒唐:) 有人知道该怎么做吗?在我看来,这很难做到。 问题答案: 该代码在GroovyConsole中有效

  • 问题内容: 通过下面的代码运行时,我得到一个。 我该如何解决? 问题答案: 您为月份使用了错误的日期格式,也应使用与日期中相同的定界符。 如果日期字符串的格式 对模式使用相同的定界符 如果您的日期字符串的格式 在模式中使用相同的定界符“-” 应该 从 SimpleDateFormat文档 MM —>一年中的一个月 毫米->分钟

  • 我想使用字符串创建一个JSON对象。 示例:JSON 为了创建上面的JSON,我使用了这个。 我想知道如何创建一个包含JSON数组的JSON。 下面是示例JSON。 多谢了。

  • 我目前有一个自定义对象数组 [基因报告员] 定义如下: 当打印到console时,它如下所示: [MyMovieGuide.GenrePosters(海报:/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg),MyMovieGuide.GenrePosters(海报:/jjbgi2r5crt36xf6inuehzsceb.jpg),MyMovieGuide.GenrePosters(