我有一个需要输入为True / False的函数,它将从另一个函数输入。我想知道这样做的最佳做法是什么。这是我正在尝试的例子:
def feedBool(self, x):
x = a_function_assigns_values_of_x(x = x)
if x=="val1" or x == "val2" :
inp = True
else
inp = False
feedingBool(self, inp)
return
def feedingBool(self, inp) :
if inp :
do_something
else :
dont_do_something
return
答案 0 :(得分:1)
你可以这样做:
def feedBool(self, x):
x = a_function_assigns_values_of_x(x = x)
feedingBool(self, bool(x=="val1" or x == "val2"))
或者,正如评论中所指出的那样:
def feedBool(self, x):
x = a_function_assigns_values_of_x(x = x)
feedingBool(self, x in ("val1","val2"))
答案 1 :(得分:1)
为什么不呢:
inp = x in ("val1", "val2")
因为它可以在调用下一个函数时更直接地压缩,但这将以一些可读性为代价,imho。
答案 2 :(得分:0)
你通常把测试放在一个函数中并说出结果:
def test(x):
# aka `return x in ("val1", "val2")` but thats another story
if x=="val1" or x == "val2" :
res = True
else
res = False
return res
def dostuff(inp):
# i guess this function is supposed to do something with inp
x = a_function_assigns_values_of_x(inp)
if test(x):
do_something
else :
dont_do_something
dostuff(inp)