[Python] lst = [].append

問題

何が表示されますか?

lst = [].append(5)
print(lst)

答え

None が表示される。

何で?と最初分からなかった。

append()はリストをミューテイトした上でNoneを返す関数です。

http://hg.python.org/cpython/file/aa3a7d5e0478/Objects/listobject.c#l791

listappend(PyListObject *self, PyObject *v)
{
    if (app1(self, v) == 0)
        Py_RETURN_NONE;
    return NULL;
}

今まで何も考えずにappend()使ってたけど、ちゃんと勉強しなければならない。