インスタンス化時に値がランダムに生成される属性を持つオブジェクトを作成しています。属性には時々(ランダムに)新しい値が割り当てられるので、そうするためのメソッドを定義しています。内部からそのメソッドを呼び出して属性を初期化するのは悪い形式__init__
ですか?回避するのは簡単ですが(少量のコードを複製するだけで済みます)、メソッドを呼び出す方がエレガントなようです。次に例を示します。
import random
class Robot(object):
def __init__(self):
self.setDirection()
def setDirection(self):
self.direction = random.random() * 360