优秀的编程知识分享平台

网站首页 > 技术文章 正文

Python特殊方法__init__, str, __repr__使用

nanyue 2024-12-09 15:58:55 技术文章 9 ℃

在Python学习过程中,也会有构造函数和字符串输出对象的使用,本文讲解Python中构造函数和字符串对象输出的使用方法。

具体Python开发工具可以使用Jupyter工具,推荐使用PyCharm IDE,Python环境使用Anaconda搭建。

一、__init__使用

用途:初始化方法,当创建一个新对象时被自动调用。

主要功能:设置初始状态,如给属性赋初值。

示例代码

class Person:

def __init__(self, name, age):

self.name = name

self.age = age


# 创建对象

p = Person("Alice", 30)

print(p.name) # 输出: Alice

print(p.age) # 输出: 30

1.1实例案例

新建chapter06目录,在目录下新建demo01.py文件:

在demo01.py文件拷贝以上代码:

右键运行demo01.py文件,代码含义:

(1)创建了Person类;

(2)初始化Person类构造方法,传入私有成员变量name和age;

(3)创建对象,打印输出变量。

以上完成了Python构造方法和成员变量的赋值,相比Java简单好多,接下来分享字符串打印对象。

二、__str__使用

用途:转换为字符串的方法,主要用于提供易于阅读的输出。

主要功能:返回一个表示对象的字符串,通常用于打印或显示给用户。

示例代码

class Person:

def __init__(self, name, age):

self.name = name

self.age = age


def __str__(self):

return f"{self.name} is {self.age} years old."


# 创建对象

p = Person("Bob", 25)

print(p) # 输出: Bob is 25 years old.


这个示例相比于上一个示例,初始化成员变量和构造方法后,定义了一个对象字符串输出的工具:__str__。

就类似于Java中的toString()方法,是不是比Java简单好多。

2.1实例案例

在chapter06目录下,新建demo02.py文件,拷贝以上代码:

右键运行demo02.py,查看结果:

简单的几句话,就实现了Java中对象的toString()方法,是不是很魔幻。

三、__repr__使用

用途:代表对象的“官方”字符串形式,主要用于调试和开发。

主要功能:返回一个尽可能独一无二地表示对象的字符串,理想情况下可以用来重新创建对象。

示例代码

class Person:

def __init__(self, name, age):

self.name = name

self.age = age


def __repr__(self):

return f"Person('{self.name}', {self.age})"


# 创建对象

p = Person("Charlie", 22)

print(repr(p)) # 输出: Person('Charlie', 22)


这个示例就类似于按照自己的想法,重构Python对象的字符输出方法,重写了一个toString(),符合个性化定制。

3.1案例实例

在chapter06目录下新建demo03.py文件,拷贝以上代码:

右键运行demo03.py文件,查看结果:

完成了个性化打印Python对象。

透过本文分享的方法,帮助你更好的理解Python程序,掌握Python基础,在面对一些困难问题的时候不至于手忙脚乱,能读懂复杂Python代码。

详细更多Python知识学习,欢迎关注博主。

最近发表
标签列表