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编码字符进行了转义。
新闻热点
疑难解答