Pythonのdefは関数、Rubyのdefはメソッドを定義します。両者の違いはdefがネストすると現れます。 Pythonでは、ネストしたdefではローカル関数が定義されます。ローカル関数はその場で使われるだけで、外部には影響は及ぼしません(グローバル変数に代入したり、returnで返したりしなければ)。 $ python >>> class Spam: ... def ham(self): ... def egg(): ... print('egg', end='') ... print('egg', end='') ... egg() ... >>> s = Spam() >>> s.egg() AttributeError: 'Spam' object has no attribute 'egg' >>> s.ham() ham egg >>> s.egg() AttributeE

