В чем разница, чтобы установить значение по умолчанию Нет или '' в моделях облачного хранилища данных Google? - PullRequest
0 голосов
/ 10 мая 2018

У меня есть вопрос о значениях None и '' при использовании хранилища данных в Google Cloud. например,

class User(ndb.Model):
    age = ndb.IntegerProperty(default=None)
    name = ndb.StringProperty(default='')
    address = ndb.StringProperty(default=None)

Я устанавливаю значение по умолчанию, потому что хочу индексировать и получить список объектов, которым одно из свойств не было присвоено значение. Какая разница, чтобы установить значение по умолчанию StringProperty '' или None? Какой из них лучше и почему?

1 Ответ

0 голосов
/ 10 мая 2018

С точки зрения индексации нет никакой разницы: и None, и '' являются фактическими значениями, которые затем будет иметь свойство (в отличие от значения, не заданного вообще), и, таким образом, объект будет проиндексирован. См. Также: Индексирует ли NDB значение по умолчанию = Нет или свойства имеют значение Нет?

Установка StringProperty на None (если даже разрешено) потребует дополнительной проверки типа при его использовании, поскольку она может содержать значения типа string и None. При установке значения по умолчанию '' такие проверки не потребуются, так как '' является строкой, поэтому свойство всегда будет содержать string значений.

...