否定形の読みやすさについて


リーダブルコードなどを読んで、否定はなるべく使わない方が良いというのは分かるのですが、  
どうしても使わざるを得ない状況もあるかと思います。  
その場合、例えばPythonでは以下どちらの書き方が良いのでしょうか？

[code]

    if not hasSomething()
    if doesNotHaveSomething()
    
[/code]

もしくは他の書き方があれば教えてください




リーダブルコードの主張はこうです

  * 名前に否定形は使わない
  * 条件式に否定は使わない

後者については、否定を使った方が読みやすい場合もあるとも書かれています。

> if not hasSomething()  
>  if doesNotHaveSomething()

リーダブルコードではthenとelseをひっくり返して前者の`not`を消すことを考えろといっているわけですが、それが出来ないのであれば、前者を使うほうがよいでしょう。

後者は、`doesNotHaveSomething()`が`false`を返したときに結局どういう状態なのか考えるのが大変です。これが「名前に否定形を使わない」とされる理由です。

