如何在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类中定义strrepr


更多信息请参见-

在Hello类中定义strrepr


此处有更多信息-

为此,应在类中定义一个特殊的方法_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”