【发布时间】:2021-11-25 06:07:55
【问题描述】:
我正在尝试做应该是简单的字符串比较,但我无法让它工作:
class Bonk:
def __init__(self, thing):
self.thing = thing
def test(self):
if self.thing == 'flarn':
return 'you have flarn'
return 'you have nothing'
bonk1 = Bonk('glurm')
bonk2 = Bonk('flarn')
bonk1.test()
bonk2.test()
这会返回nothing。我也试过这个:
def test(self):
if self.thing in ['flarn']:
...
这也不起作用。
我尝试了双引号,将“flarn”分配给一个变量,然后针对该变量进行测试,在列表测试的末尾添加一个逗号。我尝试将其作为变量传递...但没有任何效果。
我错过了什么?
【问题讨论】:
-
所以呃......“不返回任何内容”,你的意思是没有输出吗?因为
bonk1.test()肯定返回 一个值,但你需要做 像print(bonk1.test())这样的事情 -
是的。我没有想到这一点;我的假设是
return会像__str__和__repr__一样输出字符串。不过,你是对的。谢谢。 :) -
__str__和__repr__不会自动打印任何内容。您可能会对 IDE 的某个功能感到困惑。
标签: python string if-statement