self について

ここにとても明快な論拠がある。"self"を明示的に引数として記述することによって,以下の2つの関数呼び出しが論理的に同じであることを補強できる,というのである。つまり,メソッドfooはクラスCのインスタンスであることを論理的に示せるわけだ。

foo.meth(arg) == C.meth(foo, arg)

和訳 なぜPythonのメソッド引数に明示的にselfと書くのか | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

ふむふむ
書いてみる

#!/usr/bin/env python
# -*- coding: utf-8 -*-

class C:

    def __init__(self,bar):
        self.bar = bar

    def foo(self,data):
        print self.bar, data

c = C('hoge1');
c.foo('hoge1-1');

C.foo(c,'hoge1-2')

結果

hoge1 hoge1-1
hoge1 hoge1-2

なるほどなるほど