Python repr()函數是Python的內置函數。該函數的作用是返回一個對象的可打印字符表示的字符串。對于大多數類型,該函數返回的字符串值與傳遞給eval()函數返回的值相同,其它情況則返回一個包含對象類型名稱及附加的對象地址信息,這些內容將會放在一對尖括號內。一個類可以通過定義__repr__()函數,控制著其實例返回的內容。
官方文檔給出的repr()函數語法格式如下:
repr(object)
該函數有一個參數,可以是任何類型的數據。
該函數的返回值是一個字符串,對于大多數類型,字符串的內容與參數的內容相同,對于類的實例常常返回包括類名稱、對象地址信息的字符串。
#數字
i1 = 123
print(repr(i1))
i2 = 12.3
print(repr(i2))
i3 = 1.2 + 3.4j
print(repr(i3))
i4 = 0b1101
print(repr(i4))
#布爾類型
b1 = True
print(repr(b1))
b2 = 3 > 4
print(repr(b2))
#字符串
s1 = "abc ABC"
print(repr(s1))
s2 = "abc/n/t/rABC"
print(repr(s2))
s3 = "武林網VEVB"
print(repr(s3))
輸出結果:
123
12.3
(1.2+3.4j)
13
True
False
'abc ABC'
'abc/n/t/rABC'
'武林網VEVB'
#參數是列表
lst = [12,12.1,'A','æ','奧運會']
print(repr(lst))
#參數是元組
t = ('奧運會','A','a','æ')
print(repr(t))
#參數是字典
d = {'字符':'優雅','A':'â','1':1}
print(repr(d))
輸出結果:
[12, 12.1, 'A', 'æ', '奧運會']
('奧運會', 'A', 'a', 'æ')
{'字符': '優雅', 'A': 'â', '1': 1}
如果在自定義對象中定義了__repr__()函數的話,repr()函數根據__repr__()函數返回的內容進行處理,否則僅輸出實例所屬的類名稱及地址等信息。
看下面的例子。
class Student:
name=""
def __init__(self,name):
self.name = name
class Teacher:
name = ""
def __init__(self,name):
self.name = name
def __repr__(self):
return self.name
S = Student("王濤")
print(repr(S))
T = Teacher("蘇炳添")
print(repr(T))
輸出結果如下:
<__main__.Student object at 0x0000000002DB47F0>
蘇炳添
以上介紹了repr()函數的使用方法。
通過對比Python ascii()函數可以看出,repr()函數與ascii()函數具有很大的相似性,其不同之處在于:ascii()函數對ASCII編碼的字符原樣輸出,而非ASCII編碼的字符使用轉義字符的形式輸出。而repr()函數不管是否為ASCII編碼字符都原樣輸出。在ascii()函數中也說過,實際上在ascii()函數內部實現中使用了repr()函數來實現,只不過在返回字符串時,對非ASCII編碼字符進行了轉義。
新聞熱點
疑難解答