1달 전쯤에 있었던 python-dev에서 토론 중에 나왔던 바로 그 연산자를 받으면 전부 함수로 만들어버리는 걸 그냥 모듈로 한번 만들어 봤습니다. 사실은 operator모듈에 넣고 싶었지만, 선행 연산자에 변수가 있으면 발생하는 모호성이나 체이닝 콜 같은 게 너무 심각해서 표준에 넣었다가는 돌맞을 것 같아서 으흐~;;
devel/py-anonfunc 에서 Sources 클릭하면 타볼을 받을 수 있습니다.
간단하게 사용법은 설치하고 파이썬을 띄우면 빌트인에 X, Y, Z, anonfunc가 들어가 있는데, X는 첫번째 인자, Y는 두번째 인자, Z는 세번째 인자, anonfunc는 얘네들의 클래스입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
>>> f = X + Y * Z >>> f(1, 2, 3) 7 >>> f = divmod(X ** 3 + X ** 2, 5) >>> f(12) (374, 2) >>> f = X[:5] + Y[-5:] >>> f(range(10), range(20)) [0, 1, 2, 3, 4, 15, 16, 17, 18, 19] >>> f1 = X ** 3 + 3 * (X ** 2) >>> f2 = X + Y % X >>> (f1 * f2)(3, 4) 216 >>> import sys >>> f = anonfunc('mod').platform >>> f(mod=sys) 'freebsd5' |