8

書く方法やのための方法はありunittestsますdoctestsinnerfunc

def outerfunc():
    def innerfunc():
        do_something()
    return innerfunc()
4

2 に答える 2

8

内部関数オブジェクト自体を抽出する方法を提供する場合のみ。

def outerfunc(calltheinner=True):
    def innerfunc():
        do_something()
    if calltheinner:
        return innerfunc()
    else:
        return innerfunc

あなたの外側の機能が内側の機能を完全にそれ自体の内側に隠すことを主張する場合(そうするために適切に結合されたときにそれを外側に浸透させないでください)、あなたのユニットテストは極端で完全なプライバシーに対するこの強い入札を打ち負かす力がありません;-)。

于 2010-01-26T01:06:17.917 に答える
4

これは実際には古い未解決のPythonの問題です。

doctestにネストされた関数を検出させるパッチの候補(2007年から)がありますが、おそらく誰かがこれをプッシュする必要があります。

于 2010-10-04T09:55:54.070 に答える