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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。