あいつの日誌β

働きながら旅しています。

暗黙の False の恐怖

暗黙の False - あいつの日誌β

以前このような記事を書いたのですが、requests というモジュールがちょっと怖いなと感じる挙動をしているので記事に書いてみます。

# -*- coding: utf-8 -*-

import requests


def test(response):
    if response:
        return 'this is True'
    else:
        return 'this is False!!'

response = requests.Response()
response.status_code = 200 
print test(response)
response.status_code = 400 
print test(response)
:!python %
this is True
this is False!!

Python 書く人にとっても違和感があるようですが、どうも以下のような理由があるようです。

requests.getとかpostがResponseを返すので、 if requests.get('/'): みたいに書けるようにという配慮

インターフェースって本当に難しいですね。