Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用我的类';s_______?_Python_Python 2.7 - Fatal编程技术网

Python 如何使用我的类';s_______?

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

当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()]#打印[]

您也必须定义
\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()] )