在 Python 中将对象转换为字符串

这篇具有很好参考价值的文章主要介绍了在 Python 中将对象转换为字符串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 str() 类将对象转换为字符串,例如 result = str(my_object)str() 类返回给定对象的字符串版本。

my_int = 42

# ✅ Convert an object to a string
result = str(my_int)
print(result)  # 👉️ '42'

print(type(result))  # 👉️ <class 'str'>
print(isinstance(result, str))  # 👉️ True

# ------------------------------------------------

# ✅ Convert a class object to a string

class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def __str__(self):
        return f'Name: {self.name}'


bobby = Employee('jiyik', 100)

print(bobby)  # 👉️ Name: jiyik

在 Python 中将对象转换为字符串

第一个示例使用 str() 类将对象转换为字符串。

str 类接受一个对象并返回该对象的字符串版本。

my_obj = 3.14

result = str(my_obj)
print(result)  # 👉️ '3.14'
print(type(result)) # 👉️ <class 'str'>

如果需要将类对象转换为字符串,请实现 __str__() 方法。


在 Python 中将类对象转换为字符串

使用 __str__() 方法将对象转换为字符串。 __str__() 方法由 str(object) 和内置的 format()print() 函数调用,并返回对象的非正式字符串表示。

class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def __str__(self):
        return f'Name: {self.name}'


bobby = Employee('jiyik', 100)

print(bobby)  # 👉️ Name: jiyik

我们在类上定义了 __str__() 方法将其转换为字符串。

__str__() 方法由 str(object) 和内置的 format()print() 函数调用,并返回对象的非正式字符串表示。

print() 函数返回类的 __str__() 方法的输出。

确保从 __str__() 方法返回一个字符串,否则会引发 TypeError。

例如,如果我们想从 __str__() 方法返回员工的工资,我们必须使用 str() 类将值转换为字符串。

class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def __str__(self):
        return str(self.salary)


bobby = Employee('jiyik', 100)

print(bobby)  # 👉️ 100

如果我们在格式化的字符串文字中或与 str.format() 方法一起使用对象,则会调用 __str__() 方法。

class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def __str__(self):
        return str(self.salary)


bobby = Employee('jiyik', 100)

result = f'Current salary: {bobby}'
print(result) # 👉️ Current salary: 100

__str__() 方法应该返回一个字符串,该字符串是对象的人类可读表示。

如果需要将类实例转换为 JSON 字符串,请在实例上使用 __dict__ 属性。

import json

class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def __str__(self):
        return str(self.salary)


bobby = Employee('jiyik', 100)

json_str = json.dumps(bobby.__dict__)
print(json_str) # 👉️ '{"name": "jiyik", "salary": 100}'

还有一个 __repr__() 方法可以以与 __str__() 方法类似的方式使用。

class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def __repr__(self):
        return self.name


bobby = Employee('jiyik', 100)
print(bobby)  # 👉️ 'jiyik'

__repr__ 方法由 repr() 函数调用,通常用于获取一个字符串,该字符串可用于使用 eval() 函数重建对象。

如果类没有定义 __str__() 方法,但定义了 __repr__(),则使用 __repr__() 的输出。

说明 __str__()__repr__() 之间区别的一个好方法是使用 datetime.now() 方法。

import datetime

# 👇️ using __str__()
print(datetime.datetime.now())  # 👉️ 2022-09-08 14:29:05.719749

# 👇️ using __repr__()
# 👉️ datetime.datetime(2022, 9, 8, 14, 29, 5, 719769)
print(repr(datetime.datetime.now()))

result = eval('datetime.datetime(2022, 9, 8, 14, 29, 5, 719769)')
print(result)  # 👉️ 2022-09-08 14:29:05.719769

当我们使用 print() 函数时, datetime 类中的 __str__() 方法被调用并返回日期和时间的人类可读表示。

当我们使用 repr() 函数时,类的 __repr__() 方法被调用并返回一个字符串,该字符串可用于重新创建对象的相同状态。

我们将字符串传递给 eval() 函数并创建了一个具有相同状态的日期时间对象。

请注意 ,以这种方式实现 __repr__() 方法并不总是必要或可能的。

大多数情况下,让 __str__() 方法返回人类可读的字符串就足够了。文章来源地址https://www.toymoban.com/news/detail-475676.html

到了这里,关于在 Python 中将对象转换为字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在JavaScript中将字符串转换为数字的7种方法

    原始地址:https://dev.to/sanchithasr/7-ways-to-convert-a-string-to-number-in-javascript-4l 使用parseInt() parseInt()解析字符串并返回一个整数。可以包含空格。只返回第一个数字。 然而,该方法有一个限制。如果解析的是小数,它将四舍五入为最近的整数值,并将该值转换为 字符串 。一个可能

    2024年02月05日
    浏览(45)
  • Python 中将字符串拆分为整数列表

    将字符串拆分为整数列表: 使用 str.split() 方法将字符串拆分为字符串列表。 使用列表理解来迭代字符串列表。 使用 int() 类将每个字符串转换为整数。 列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。 在每次迭代中,我们将当前列表项传递给 int() 类

    2024年02月05日
    浏览(42)
  • base64 字符串转换为 Blob 对象

    在 JavaScript 中,可以使用以下代码将 base64 字符串转换为 Blob 对象: 其中, base64 是待转换的 base64 字符串, type 是 Blob 对象的 MIME 类型,默认值为 \\\'application/octet-stream\\\' 。该函数返回一个 Blob 对象。 可以像下面这样使用该函数: 其中, base64Str 是待转换的 base64 字符串, ima

    2024年02月15日
    浏览(30)
  • java对象与Json字符串的相互转换

    文章目录 1.Json对象转换为java 对象 2. Java对象转换JSON 1.Json对象转换为java 对象 导入jackson的相关jar包 创建Jackson核心对象 ObjectMapper 调用ObjectMapper的相关方法进行转换 2. Java对象转换JSON 常见的解析器:Jsonlib,Gson,fastjson,jackson 1.导入jackson的相关jar包 2.创建Jackson核心对象 Obj

    2024年02月09日
    浏览(42)
  • Json对象和Json字符串之间相互转换

    作为前端开发,在和后端进行联调接口时,总会遇到要求传JSON字符串或是JSON对象,或者是返回值里是JSON字符串要在页面上展示JSON对象这种情况,都需要前端开发人员对Json对象和Json对象进行相互转换,得到想要的结果。 废话不多说,直接上干货: 1.首先定义一个Json对象:

    2024年02月11日
    浏览(41)
  • 将 base64 字符串转换为 Blob 对象

    在 JavaScript 中,可以使用以下代码将 base64 字符串转换为 Blob 对象: 其中, base64 是待转换的 base64 字符串, type 是 Blob 对象的 MIME 类型,默认值为 \\\'application/octet-stream\\\' 。该函数返回一个 Blob 对象。 可以像下面这样使用该函数: 其中, base64Str 是待转换的 base64 字符串, ima

    2024年02月16日
    浏览(49)
  • js字符串转换为对象格式的3种方法

    var str = \\\'{\\\"name\\\":\\\"小明\\\",\\\"age\\\":18}\\\'; var json = JSON.parse(str);//第一种 var json2 = eval(\\\"(\\\" + str + \\\")\\\");//第二种 var json3 = (new Function(\\\"return \\\" + str))();//第三种 1.JSON.parse() JSON.parse(text[, reviver]);   //text:必需, 一个有效的 JSON 字符串。 //reviver: 可选,一个转换结果的函数, 将为对象的每个成员调

    2024年01月21日
    浏览(37)
  • JavaScript 中JSON 字符串和对象之间的转换。

    用于将 JavaScript 对象转换为 JSON 字符串。 它接受一个 JavaScript 对象作为参数,并返回对应的 JSON 字符串表示。例如: 用于将 JSON 字符串转换为 JavaScript 对象。 它接受一个 JSON 字符串作为参数,并返回对应的 JavaScript 对象。例如:  

    2024年01月23日
    浏览(35)
  • 微信小程序开发——json对象和字符串转换

    JSON对象和字符串的互转 注意事项 1、JSON操作时一定要保证是JSON格式的字符串,或对象。 报错如下: 原代码 1)JSON对象转字符串 2)JSON字符串转对象 解决:JSON字符串转对象时,字符串值应该是 跳转设置是:“…?item=”+jsonstr,即字符参数是 item ,所以转换时要取值 options

    2024年02月11日
    浏览(38)
  • java将json字符串数据转换为List对象

    方法一:使用Jackson库 pom.xml文件中添加以下依赖: 转换之后直接可以用list操作了 方法二:使用Gson库 res: json格式的数据 方法二比方法一使用起来更简便一点

    2024年02月21日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包