Есть ли какая-либо польза для функции isTrue? - PullRequest
0 голосов
/ 05 сентября 2018
def istrue(a):
    if a:
        return True
    return False

Может ли такая функция иметь свою нишу? Я имею в виду, если я хочу проверить правильность переменной, я всегда могу просто использовать

if variable:
   do that

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 05 сентября 2018

Нет, определяя функцию следующим образом:

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!')
0 голосов
/ 05 сентября 2018

В Python вы можете передать функцию в качестве параметра другой функции. Ваш istrue может быть передан таким образом.

def myfilter(seq, func):
    for x in seq:
        if func(x):
            yield x

print(list(myfilter([0,1,2,3], istrue)))

Поймите, что это игрушечный пример, и нетривиальный вариант использования будет более полезным, но более сложным.

Как указано в комментариях, нет необходимости писать собственную функцию istrue, потому что в Python она уже есть: bool.

0 голосов
/ 05 сентября 2018

Вы можете проверить ненулевые значения, например, так как True и False просто являются прославленным 0 или не 0, он также может проверить, содержит ли строка что-либо "" = False, "thing "= True, то же самое происходит для других массивов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...