[英]How to convert an instance into String type in python?
说类实例是类Hello
printHello
现在,当我执行以下代码时
print printHello
输出为"HelloPrinted"
现在,我想将printHello
与字符串类型进行比较,但由于printHello
是实例类型,因此无法实现。 有没有一种方法可以捕获print printHello
代码的输出并将其用于比较,或者将printHello
的类型转换为字符串,我可以将其用于其他字符串比较? 任何帮助表示赞赏。
如果要专门比较字符串,可以用两种不同的方法。 首先是为您的类定义__str__
方法:
class Hello:
def __init__(self, data="HelloWorld"):
self._data = data
def __str__(self):
return self._data
然后,您可以将字符串与以下内容进行比较:
h = Hello()
str(h) == "HelloWorld"
或者,您可以专门使用__eq__
特殊功能:
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"
在Hello类中定义str或repr
此处的更多信息-https: //docs.python.org/2/reference/datamodel.html#object。 力量
为此,应在您的类中定义一个特殊的方法__repr__:
class Hello:
def __init__(self, name):
self.name= name
def __repr__(self):
return "printHello"
我想你要:
string_value = printHello.__str__()
if string_value == "some string":
do_whatever()
print
使用__str__()
方法来理解类对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.