如何在 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 str
与 bool
类型连接。您可以,但是,您可以:
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"
这里可以使用三种策略,
- 使用
对象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)
- 使用元组
def my_method():
foo = "foo"
is_bar = True
return foo, is_bar
- 使用一个list/dic/..
def my_method():
foo = "foo"
is_bar = True
return [foo, is_bar]
Reference
我有以下声明:
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 str
与 bool
类型连接。您可以,但是,您可以:
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"
这里可以使用三种策略,
- 使用
对象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)
- 使用元组
def my_method():
foo = "foo"
is_bar = True
return foo, is_bar
- 使用一个list/dic/..
def my_method():
foo = "foo"
is_bar = True
return [foo, is_bar]
Reference