2013-04-05 3 views
-1

함수 정의를 자동화하는 방법이 있는지 궁금합니다. 예를 들어 내가 좋아하는 함수의 집합 원하는 : 문제는 내가이 많이 정의해야한다는 것입니다파이썬에서 함수 정의를 자동화하는 방법이 있습니까?

def add1: 
    list.append(x) 
def add2: 
    list.append(y) 
def add3: 
    list2.append(x) 
... 

을, 232는 정확합니다. 이 작업을 수행하는 더 빠른 방법이 있습니까? 또한 파이썬 3.2를 사용합니다.

+1

에 따라 다른 행동을 정의 할 수 있도록하려면 코드를 변경 해야 할 것? 당신이 패턴에서 무언가를하고 있다면 람다 함수를 사용할 수있다. – karthikr

+4

더 나은 질문은 왜 거의 같은 232 함수가 필요하다고 생각합니까 – jozefg

+5

왜 232 함수를 정의 하시겠습니까? 이것은 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)처럼 들립니다. –

답변

1

당신은 사용할 수 있습니다 exec

예 :

def your_common_function(i, txt): 
    # here you may decide what to do with arguments according to "i" value 
    if i == 1: 
     print(txt) 
    else: 
     print(txt+'s') 

for i in range(1, 233): 
    exec("def add%d(txt):\n\tyour_common_function(%d, txt)" % (i, i)) 

add1("hello world") # prints "hello world" 
add167("hello world") # prints "hello worlds" 

편집 나는 당신이하려고하는 무엇 "기능 번호"

+0

감사합니다. 그게 효과가있다. – Anthony

관련 문제