def istrue(a):
if a:
return True
return False
这样的功能可以以某种方式占有其优势吗? 我的意思是,如果我想检查变量的真实性,可以随时使用
if variable:
do that
预先感谢
答案 0 :(得分:4)
否,定义这样的函数:
def istrue(a):
if a:
return True
else:
return False
并像这样使用它:
value = True
if istrue(value):
print('True!')
将与此相同:
if bool(value):
print('True!')
或者这个:
if value:
print('True!')
因此,将布尔评估抽象到函数中将无济于事。但是,可能有一个用例来确定a
是否是布尔值的实例,同时还要对a
进行布尔值评估以确定它是否是文字True
。但是即使我不会抽象成一个函数,我也会这样写:
if value is True:
print('True!')
答案 1 :(得分:2)
例如,您可以检查非零值,因为True和False只是美化的0或非0,它还可以检查字符串是否包含任何“” = False,“ something” = True,同样用于其他阵列
答案 2 :(得分:1)
在Python中,您可以将一个函数作为参数传递给另一个函数。您的istrue
可以通过这种方式传递。
def myfilter(seq, func):
for x in seq:
if func(x):
yield x
print(list(myfilter([0,1,2,3], istrue)))
意识到这是一个玩具示例,非平凡的用例会更有用,但更复杂。
正如评论中指出的那样,由于Python已经拥有一个istrue
,因此无需编写自己的bool
函数。