join_mark

 

python 类method __str__ and __repr__

#自定义__str__方法,重新定义print方法返回值
# class Foo:
# def __init__(self,name,age):
# self.name=name
# self.age=age
# def __str__(self):
# return '名字是%s 年龄是%s' %(self.name,self.age)
#
# f1=Foo('jack',17)
# print(f1)
# x=str(f1)
# print(x)
# y=f1.__str__()
# print(y)


#当str与repr共存时,__str__会优于__repr__

# class Foo:
# def __init__(self,name,age):
# self.name=name
# self.age=age
# def __str__(self):
# return '---》名字是%s 年龄是%s' %(self.name,self.age)
# def __repr__(self):
# return '名字是%s 年龄是%s' %(self.name,self.age)
#
# f1=Foo('jack',17)
# repr(f1)
# print(f1) #str(f1) --> --> f1.__repr__() --> f1.__str__()

#总结:str函数或者print函数 --》 obj.__str__()
# repr或者交互式解释器 --》 obj.__repr__()
# 如果__str__没有被定义,那么就会使用__repr__来代替输出
# 这个两个方法,返回值必须是字条串,否则抛出异常

posted on 2018-07-22 11:58  join_mark  阅读(103)  评论(0)    收藏  举报

导航