クロージャー作りたかったんですよ。
C++
using std::function; using std::bind; using namespace std::placeholders; // 引数を3つ受け取る関数 void someFunction(int a, int b, int c) { ... }; int main() { // someFunction に値を束縛してクロージャを作って auto closure = bind(&someFunction, _1, 0xB, _2); // それを呼び出す closure(0xA, 0xC); // somFunction(0xA, 0xB, 0xC) と等価 }
これと同様の事を python でもやりたい。
python(partial 使う)
from functools import partial # 引数を3つ受け取る関数 def someFunction(a, b, c): ... if __name__ == '__main__': # someFunction に値を束縛してクロージャを作って closure = partial(someFunction, b=0xB) # それを呼び出す closure(0xA, 0xC) # somFunction(0xA, 0xB, 0xC) と等価
python(lambda 使う)
if __name__ == '__main__': # ラムダでなんとかする closure = lambda a, c: someFunction(a, 0xB, c) # それを呼び出す closure(0xA, 0xC) # somFunction(0xA, 0xB, 0xC) と等価
感想
DTMしたい…