Как сделать проверку встроенного свойства, чтобы вернуть логическое значение?

Сохраните строки файла в списке, затем удалите список, который вы хотите удалить, и напишите оставшиеся строки в новый файл

with open("file_name.txt", "r") as f:
    lines = f.readlines() 
    lines.remove("Line you want to delete\n")
    with open("new_file.txt", "w") as new_f:
        for line in lines:        
            new_f.write(line)
0
задан scipper 18 January 2019 в 10:39
поделиться

3 ответа

Оператор && не является неявным образом приведенным к логическому значению. Что на самом деле происходит:

A && B && C
// if A is falsy return A
// else return B && C
//      if B is falsy return B
//      else return C

в вашем случае у вас есть три возможности:

  1. obj не определен -> возвращает undefined
  2. объект определен, но someProperty не определено -> возвращает неопределенное
  3. объект obj определен и someProperty определен -> возвращает некоторое свойство (в данном случае строка)
0
ответ дан Nikita Malyschkin 18 January 2019 в 10:39
поделиться

Вы можете перенести возвращаемое значение в логическое :

function test(obj?: { someProperty: string}) {
  return Boolean(obj && obj.someProperty);
}

JSFiddle: https://jsfiddle.net/oq4jr518/

0
ответ дан Islam Elshobokshy 18 January 2019 в 10:39
поделиться

Вы можете использовать это решение:

function test(obj?: { someProperty: string}) {
  return obj && obj.someProperty && true || false;
}
0
ответ дан Alireza Noorani 18 January 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: