Нулевой шаблон в Python недостаточно используется? - PullRequest
18 голосов
/ 06 января 2010

Время от времени я сталкиваюсь с кодом, подобным этому:

foo = Foo()
...
if foo.bar is not None and foo.bar.baz == 42:
   shiny_happy(...)

Что, на мой взгляд, не пифонично.

В Objective-C вы можете отправлять сообщения на ноль и получать ноль в качестве ответа. Я всегда думал, что это очень удобно. Конечно, в Python можно реализовать шаблон Null, однако, судя по результатам, предоставленным мне Google, кажется, что он не очень широко используется. Почему это?

Или еще лучше - было бы плохой идеей позволить None. Что бы ни возвращало None вместо создания исключения?

Ответы [ 11 ]

1 голос
/ 06 января 2010

Лично я считаю, что исключение - вот что должно произойти. Допустим, по какой-то причине вы пишете программное обеспечение для ракет на Python. Представьте себе атомную бомбу и предположим, что существует метод с именем explode (timeToExplode), и timeToExplode передается как None. Я думаю, что вы были бы несчастны в конце дня, когда проиграли войну, потому что вы не обнаружили этого в тестировании.

...