ThinkStats (8)

昨晩のエントリ、記憶にない。ちなみに読んでいるのは download した first.py ですね。そりゃ良いのですが Python 強力だなぁ。素面で読むと凄さがアレ。
例えば ProcessTables という手続きですが定義が以下。

def ProcessTables(*tables):
    """Processes a list of tables
    
    Args:
        tables: gathered argument tuple of Tuples
    """
    for table in tables:
        Process(table)

これ呼び出し側てきに以下で云々してます。何でもありだな。

    ProcessTables(firsts, others)

引数に * 一つでリスト、ってことだったはずですが呼び出し元てきには無理やりリストにする必要さえ無いのか。あるいは上記の Process な手続き定義が以下になってて

def Process(table):
    """Runs analysis on the given table.
    
    Args:
        table: table object
    """
    table.lengths = [p.prglength for p in table.records]
    table.n = len(table.lengths)
    table.mu = Mean(table.lengths)

上記 table は Pregnancies なオブジェクトになってるんですが、length とか n とか mu とかな属性については後付けで宣言も可能なのか。これが可能だと凄く柔軟な書き方ができるなぁ。

とりあえず

こちら対応は夜ってことにして、ほったらかしになってる Robolectric 方面に去ります。