Python 如何使用我的类';s_______?
当Python的Python 如何使用我的类';s_______?,python,python-2.7,Python,Python 2.7,当Python的print被其他类包含时,有没有办法让它们使用我的类的\uuu str\uuu class C(object): def __str__(self): return 'MyC' print C() # OK print [C()] # prints [<__main__.C object at 0x7fb8774e59d0>] C类(对象): 定义(自我): 返回“MyC” 打印C()#好的 打印[C()]#打印[] 您也必须定义\uuu
print
被其他类包含时,有没有办法让它们使用我的类的\uuu str\uuu
class C(object):
def __str__(self):
return 'MyC'
print C() # OK
print [C()] # prints [<__main__.C object at 0x7fb8774e59d0>]
C类(对象):
定义(自我):
返回“MyC”
打印C()#好的
打印[C()]#打印[]
您也必须定义\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
方法,因为您没有直接调用它的\uuuuuuuuuuuuuuuuuuuuuuuu
方法,而打印列表调用的值不是\uuuuuuuuuuuuuuuuuuuuuuuu
class C(object):
def __str__(self):
return 'MyC'
def __repr__(self):
return self.__str__() # return the same result as the __str__ method
print C() # prints MyC
print [C()] # also prints MyC
您还必须定义
\uuuuu repr\uuuuu
,因为您没有直接调用它的\uuuu str\uuuu
方法,而且打印列表调用的是值'\uuuu repr\uuuu
方法,而不是\uuu str\uuu
class C(object):
def __str__(self):
return 'MyC'
def __repr__(self):
return self.__str__() # return the same result as the __str__ method
print C() # prints MyC
print [C()] # also prints MyC
Python将在容器中打印representation,如您所见。您可以定义\uuuu repr\uuuu
而不是\uuuu str\uuuu
。但是,如果可能的话,该函数的目的是生成可以计算以再次获取对象的字符串。因此,在您的案例中,要处理这两种情况,您可以这样做
class C(object):
def __repr__(self):
return 'C()'
print( C() )
print( [C()] )
Python将在容器中打印representation,如您所见。您可以定义\uuuu repr\uuuu
而不是\uuuu str\uuuu
。但是,如果可能的话,该函数的目的是生成可以计算以再次获取对象的字符串。因此,在您的案例中,要处理这两种情况,您可以这样做
class C(object):
def __repr__(self):
return 'C()'
print( C() )
print( [C()] )