Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
# Мы хотели бы подключиться к базе данных. Мы не знаем, верны ли логин и пароль
# Если соединение с базой будет неуспешно, то
# Он бросит исключение. Обратите внимание, что MyDatabase и DatabaseException
# НЕ являются реальными классами, мы просто используем их в качестве примеров.
try:
database = MyDatabase(db_host, db_user, db_password, db_database)
database_connection = database.connect()
except DatabaseException:
pass
if database_connection is None:
print('The database could not connect')
else:
print('The database could connect')
Часто вы хотите выполнить действие, которое может работать либо завершиться неудачно. Используя None, вы можете проверить успех действия. Вот пример:
if database_connection is None:
connected = False
else:
connected = True
if connected:
print('The database could connect')
else:
print('The database could not connect')
if database_connection is None:
pass
else:
connected = True
if connected is None:
print('The database could not connect')
else:
print('The database could connect')
Ты прав. Тем более, что бы этот код вообще заработал, автору придётся ловить уебанское исключение:
try:
if database_connection is None:
print('The database could not connect')
else:
print('The database could connect')
except NameError:
print('The database could not connect')
То ли дело PHP!
if (is_null(@$database_connection))
print 'The database could not connect';
else
print 'The database could connect';
А если использовать шаблонизатор по назначению:
<?php if (is_null(@$database_connection)): ?>
The database could not connect
<?php else: ?>
The database could connect
<?php endif ?>
isset($database_connection) вообще-то. У них это практически идиома 🙂
Кстати, isset - это не функция, а специальная конструкция языка (из-за чего раньше isset($a || $b) было fatal error), так что никаких варнингов тут прятать не надо.
То ли дело PHP!
А если использовать шаблонизатор по назначению:
Кстати, isset - это не функция, а специальная конструкция языка (из-за чего раньше isset($a || $b) было fatal error), так что никаких варнингов тут прятать не надо.
Кстати, правильное замечание: оно будет не none, а отсутствовать.
class myDbConnectionFactory...
Влияние васи?