Python __repr__()其中一个魔法方法那 返回一个可打印的表示对象在Python可以自定义或预定义,即我们还可以根据需要创建对象的字符串表示形式。
Python __repr__() 魔术方法语法
用法: object.__repr__()
- object: The object whose printable representation is to be returned.
返回: Simple string representation of the passed object.
Python __repr__() 方法示例
在此示例中,我们定义了一个 GFG 类,其中三个实例变量 f_name、m_name 和 l_name 分别代表一个人的名字、中间名和姓氏。这__repr__()方法被定义为返回一个string以可用于重新创建对象的格式表示实例。
Python3
class GFG:
def __init__(self, f_name, m_name, l_name):
self.f_name = f_name
self.m_name = m_name
self.l_name = l_name
def __repr__(self):
return f'GFG("{self.f_name}","{self.m_name}","{self.l_name}")'
gfg = GFG("Geeks", "For", "Geeks")
print(repr(gfg))
输出:
GFG("Geeks","For","Geeks")
__str__()和__repr__()魔法方法的区别
在此示例中,我们定义了一个 GFG 类,其中一个实例变量名称代表一个人的名字。 __str__() 方法定义为返回实例的人类可读字符串表示形式,而 __repr__() 方法定义为返回可用于重新创建对象的实例的字符串表示形式。
当我们创建 GFG 类的实例并直接在该对象上调用 __str__() 或 __repr__() 时,将调用相应的方法并返回表示该对象的字符串。
Python3
class GFG:
def __init__(self, name):
self.name = name
def __str__(self):
return f'Name is {self.name}'
def __repr__(self):
return f'GFG(name={self.name})'
obj = GFG('GeeksForGeeks')
print(obj.__str__())
print(obj.__repr__())
输出:
Name is GeeksForGeeks GFG(name=GeeksForGeeks)
您还可以阅读str() vs repr() in Python。
使用内置类的 __str__() 和 __repr__() 示例
在这个例子中,我们定义了一个子类元组称为 MyTuple 覆盖__str__()和__repr__()方法。当我们调用时str()或者repr()在 MyTuple 的实例上,自定义__str__()和__repr__()分别调用方法。
Python3
class MyTuple(tuple):
def __str__(self):
return f"MyTuple({super().__str__()})"
def __repr__(self):
return f"MyTuple({super().__repr__()})"
mt = MyTuple((1,2,3))
print(mt.__repr__())
print(mt.__str__())
输出:
MyTuple((1, 2, 3)) MyTuple(MyTuple((1, 2, 3)))
__str__() 和 __repr__() 使用新类的示例
在这个例子中,我们定义了一个Book类,它有三个实例变量title、author和pages,分别代表一本书的标题、作者和页数。 __str__() 方法定义为以人类可读的格式返回实例的字符串表示形式,而 __repr__() 方法定义为返回可用于重新创建对象的实例的字符串表示形式。
当我们创建 Book 类的实例并对其调用 str() 时,__str__()方法被调用并返回一个表示该对象的人类可读的字符串。当我们调用时repr()其上,__repr__()方法被调用并且返回以可以重新创建的方式表示对象的字符串。
Python3
class Book:
def __init__(self, title, author, pages):
self.title = title
self.author = author
self.pages = pages
def __str__(self):
return f"{self.title} by {self.author}, {self.pages} pages"
def __repr__(self):
return f"Book('{self.title}', '{self.author}', {self.pages})"
book1 = Book("The Hitchhiker's Guide to the Galaxy", "Douglas Adams", 224)
print("Using str(): ", str(book1))
print("Using repr(): ", repr(book1))
输出:
Using str(): The Hitchhiker's Guide to the Galaxy by Douglas Adams, 224 pages Using repr(): Book('The Hitchhiker's Guide to the Galaxy', 'Douglas Adams', 224)
__repr__()魔术方法的实际使用
此代码创建一个 Color 类,其中包含__init__()方法采用后缀参数并设置实例变量自我。该值的后缀。它还设置另一个实例变量 self。标题为string包括后缀。最后,它定义了一个__repr__()返回对象的字符串表示形式的方法。
Python3
class Color:
def __init__(self, suffix):
self.suffix = suffix
self.title = f"Golden {suffix}"
def __repr__(self):
return f"Color('{self.suffix}')"
c1 = Color("Yellow")
# create another object with same params as c1
# using eval() on repr()
c2 = eval(repr(c1))
print("c1.title:", c1.title)
print("c2.title:", c2.title)
输出:
c1.title: Golden Yellow c2.title: Golden Yellow
相关用法
- Python __rmul__用法及代码示例
- Python __import__()用法及代码示例
- Python __getslice__用法及代码示例
- Python __getitem__()用法及代码示例
- Python __call__用法及代码示例
- Python __exit__用法及代码示例
- Python __new__用法及代码示例
- Python __init__用法及代码示例
- Python __file__用法及代码示例
- Python __name__用法及代码示例
- Python __len__()用法及代码示例
- Python __add__()用法及代码示例
- Python String format()用法及代码示例
- Python abs()用法及代码示例
- Python any()用法及代码示例
- Python all()用法及代码示例
- Python ascii()用法及代码示例
- Python bin()用法及代码示例
- Python bool()用法及代码示例
- Python bytearray()用法及代码示例
- Python callable()用法及代码示例
- Python bytes()用法及代码示例
- Python chr()用法及代码示例
- Python compile()用法及代码示例
- Python classmethod()用法及代码示例
注:本文由纯净天空筛选整理自shlokdi35dq大神的英文原创作品 Python __repr__() magic method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。