Так или иначе находится хорошо в Python. Я лично предпочел бы "". но снова, так или иначе хорошо
>>>x = None
>>>print(x)
None
>>>type(x)
<class 'NoneType'>
>>>x = "hello there"
>>>print(x)
hello there
>>>type(x)
<class 'str'>
>>>
>>>x = ""
>>>print(x)
>>>type(x)
<class 'str'>
>>>x = "hello there"
>>>type(x)
<class 'str'>
>>>print(x)
hello there
empty_string = ""
if not empty_string:
print "Empty string is not set"
=> Пустая строка не установлена
if empty_string is not None:
print "Empty string is not None"
=>, Пустая строка не Ни один
Философия Python должна быть читаемой.
Вот почему это - хорошая практика для определения атрибутов в __init__()
, даже если это является дополнительным.
В том же духе, необходимо спросить себя, что более ясный для любого, кто читает Ваш код. На самом деле сам тип дает много информации о будущем использовании Вашей переменной. Так:
kind = None
syntaxically корректно, но читатель не знает много. Действительно ли это - строка, код как целое число, список, и т.д.?
kind_str = None
kind = ""
И сказать немного больше, первое имеет тип на свое имя и второе в его объявлении. Я пошел бы для второго, более опрятного.