如何在python中将实例转换为字符串类型?
假设类的类实例是如何在python中将实例转换为字符串类型?,python,string,instance,Python,String,Instance,假设类的类实例是printHello,则类Hello 现在当我执行下面的代码时 打印打印你好 输出为“HelloPrinted” 现在我想将printHello与字符串类型进行比较,但无法实现它,因为printHello是instance类型。 是否有方法捕获print printHellocode的输出并将其用于比较,或者将printHello的类型转换为字符串,然后我可以将其用于其他字符串比较? 非常感谢您的帮助。我想您需要: string_value = printHello.__str_
printHello
,则类Hello
现在当我执行下面的代码时
打印打印你好
输出为“HelloPrinted”
现在我想将
printHello
与字符串类型进行比较,但无法实现它,因为printHello
是instance类型。
是否有方法捕获print printHello
code的输出并将其用于比较,或者将printHello
的类型转换为字符串,然后我可以将其用于其他字符串比较?
非常感谢您的帮助。我想您需要:
string_value = printHello.__str__()
if string_value == "some string":
do_whatever()
\uuu str\uuu()
方法由print
用于理解类对象。我想您需要:
string_value = printHello.__str__()
if string_value == "some string":
do_whatever()
\uuu str\uuu()
方法由print
用于理解类对象。在Hello类中定义str或repr
更多信息请参见-在Hello类中定义str或repr
此处有更多信息-为此,应在类中定义一个特殊的方法_urepr_uu):
class Hello:
def __init__(self, name):
self.name= name
def __repr__(self):
return "printHello"
为此,应在类中定义一个特殊的方法_repr __):
class Hello:
def __init__(self, name):
self.name= name
def __repr__(self):
return "printHello"
如果您想专门比较字符串,可以用两种不同的方法进行比较。首先是为您的类定义
\uuuu str\uuu
方法:
class Hello:
def __init__(self, data="HelloWorld"):
self._data = data
def __str__(self):
return self._data
然后,您可以将以下内容与字符串进行比较:
h = Hello()
str(h) == "HelloWorld"
或者您可以专门使用\uuuu eq\uuu
特殊功能:
class Hello:
def __init__(self, data="HelloWorld"):
self._data = data
def __str__(self):
return self._data
def __eq__(self, other):
if isinstance(other, str):
return self._data == other
else:
# do some other kind of comparison
然后您可以执行以下操作:
h = Hello()
h == "HelloWorld"
如果您想专门比较字符串,可以用两种不同的方法进行比较。首先是为您的类定义
\uuuu str\uuu
方法:
class Hello:
def __init__(self, data="HelloWorld"):
self._data = data
def __str__(self):
return self._data
然后,您可以将以下内容与字符串进行比较:
h = Hello()
str(h) == "HelloWorld"
或者您可以专门使用\uuuu eq\uuu
特殊功能:
class Hello:
def __init__(self, data="HelloWorld"):
self._data = data
def __str__(self):
return self._data
def __eq__(self, other):
if isinstance(other, str):
return self._data == other
else:
# do some other kind of comparison
然后您可以执行以下操作:
h = Hello()
h == "HelloWorld"
这很难理解。请为上下文添加代码。比较的目标是什么?如果要查看对象是否为特定类型,请使用
isinstance(printHello,Hello)
。名为“Hello”的类是如何最终导致print printHello
结果为“HelloPrinted”
?Hello
是否有\uuuu str\uuuu
或\uu repr\uuuu
方法?您可以使用printHello.\uuuuuu class\uuuuuu.\uuuuuu name\uuuuuu
获取类的名称,这就是您想要的吗?这很难理解。请为上下文添加代码。比较的目标是什么?如果要查看对象是否为特定类型,请使用isinstance(printHello,Hello)
。名为“Hello”的类是如何最终导致print printHello
结果为“HelloPrinted”
?Hello
是否有\uuuu str\uuuu
或\uu repr\uuuu
方法?您可以通过打印Hello来获取类的名称。\uuuuu class\uuuuu.\uuuuuu name\uuuuuuu,这就是您想要的吗?我得到了下面的错误>>属性错误:Hello实例没有属性“str”,我得到了下面的错误>>属性错误:Hello实例没有属性“str”