がくぞーのメモ[B!]新着記事・評価 - はてなブックマーク (original) (raw)

なぜPythonのメソッド引数に明示的にselfと書くのか に関連して。 確かに他の言語から移ってきた人からすると奇異に見えることが多そうですね。ただ、私はこの仕様を知ったとき「上手いな」と思いました。 というのも、 instance.method(arguments) == ClassName.method(instance, arguments)これが成り立つ事によって、メソッドをコールバック関数として渡すのが非常に簡単になるのです。 つまり class MyClass: def __init__(self, n): self.name = n def getname(self): return "name: " + self.name entities = [MyClass("A"), MyClass("B"), MyClass("C")] names = map(MyClass.g