Python repr() 和 str() 主要区别

repr()str() 是 Python 中两个用于将对象转换为字符串的内置函数,它们之间有一些关键的区别:

  1. 目的不同

    • repr(): 返回一个字符串,这个字符串应该是合法的 Python 表达式,可以用来重新创建对象(如果可能)。它主要用于开发和调试,旨在提供尽可能多的信息。
    • str(): 返回一个字符串,这个字符串是适合人类可读的形式,主要用于显示对象。
  2. 实现方式

    • repr(): 通常由对象的 __repr__() 方法实现。
    • str(): 通常由对象的 __str__() 方法实现。如果对象没有定义 __str__() 方法,会使用 __repr__() 方法作为替代。
  3. 应用场景

    • repr(): 在需要查看对象的”正式”字符串表示时使用,例如在调试或日志记录时。
    • str(): 在需要将对象转化为人类可读的形式时使用,例如在打印输出或显示时。
  4. 输出格式

    • repr(): 输出的字符串通常更详细,并且可以用来精确地重建对象。
    • str(): 输出的字符串通常更简洁和人类友好。

举个例子,来看一个自定义对象如何实现 __repr__()__str__() 方法:

实例

class MyClass:
    def __repr__(self):
        return “MyClass(param1=’value1′, param2=’value2′)”

    def __str__(self):
        return “MyClass with value1 and value2”

obj = MyClass()
print(repr(obj))  # 输出: MyClass(param1=’value1′, param2=’value2′)
print(str(obj))   # 输出: MyClass with value1 and value2

在这个例子中,repr(obj) 提供了一个详细的字符串表示,包含了对象的参数信息,而 str(obj) 提供了一个简洁的、人类可读的字符串表示。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
  1. 免费下载或者VIP会员资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
  2. 提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。
  3. 找不到素材资源介绍文章里的示例图片?
    对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
  4. 付款后无法显示下载地址或者无法查看内容?
    如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理
  5. 购买该资源后,可以退款吗?
    源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源

评论(0)

提示:请文明发言