В приведенном ниже коде:
def modify_note(self):
id = input("Enter a note id: ")
memo = input("Enter a memo: ")
tags = input("Enter tags: ")
if memo:
self.notebook.modify_memo(id, memo)
if tags:
self.notebook.modify_tags(id, tags)
memo
и tags
являются переменными типа строки. Как вы можете написать их после того, если python считает их логическими здесь?
Операторы if memo
и if tags
проверяют правду переменных memo
и tags
.
Любой объект может быть проверен на предмет истины значение для использования в
if
илиwhile
условие или как операнд булевой ниже. Следующие значения считаются ложными:
None
False
- нуль любого числового типа, например,
0
,0L
,0.0
,0j
.- любая пустая последовательность, например,
''
,()
,[]
.- любое пустое отображение, например,
{}
.- экземпляров пользовательских классов, если класс определяет a
__nonzero__()
или__len__()
, когда это метод возвращает целое число 0 илиbool
значениеFalse
.Все остальные значения считаются истинными - поэтому объекты многих типов всегда правда.
Каждый объект в Python имеет значение истины. Строки True
, если они не пусты.
Все зависит от версия правды Python
input()
имеет различное значение в 2.x и 3.x.