如何在 return 语句中 return 布尔值和字符串?

How to return a bool and a string in a return statement?

我有以下声明:

if Game.item_can_move(item_target) == True:
    return True + ""

else:
    return False + ", error"

但这似乎不起作用。我想 return 两个 return.

中的 bool, str

您可以 return 一次用逗号分隔多个内容:

if Game.item_can_move(item_target) == True:
    return True, ""

else:
    return False, "error"

您的代码不起作用的原因是您无法将 python strbool 类型连接。您可以,但是,您可以:

if Game.item_can_move(item_target) == True:
    return str(True) + ", "

else:
    return str(False) + ", error"

顺便说一句,您的代码可以简化:

b = Game.item_can_move(item_target)
if b:
    return b, ""
return b, "error"

这里可以使用三种策略,

  1. 使用对象Class
class Foo:
    def __init__(self): 
        self.foo = "foo"
        self.is_bar = True   
    
def my_method(): 
    return Foo() 
          
tmp = my_method()  
print(tmp.foo) 
print(tmp.is_bar)
  1. 使用元组
def my_method(): 
    foo = "foo"
    is_bar = True
    return foo, is_bar
  1. 使用一个list/dic/..
def my_method(): 
    foo = "foo"
    is_bar = True
    return [foo, is_bar]

Reference