#自定义__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__来代替输出
# 这个两个方法,返回值必须是字条串,否则抛出异常