반응형

python -- 가변인자 이용하여 callback 사용하기 


환경: python 3.6, windows 10 64bit




-- 여러 함수들을 시간대별로 순서대로 실행시키고자 할때 사용하자..


    예 ; 증권사 api TR 함수들은 동시에 실행 시킬수 없고, TR 함수 실행시 증권사에서 제한하는 시간을 시켜서 순서대로 실행해야한다.

          --> 하지만, TR 함수 실행시작은 사용자가 맘대로 실행시킴.

          --> 이러한 충돌을 해결하기위해... TR 함수들을 한 곳에서 순서대로 실행시키자


def fx1():
print("fx1...")


def fx2(a):
print("fx2..", a)


def fx3(a, b):
print("fx3...", a, b)


def fx4(a=3, b=4):
print("fx4..", a, b)


def fx5(a, b, c=11, d=33):
print("fx5..", a, b, c, d)


def fx6(a, b_list):
print("fx6..", a)
for x in b_list:
print(x)


ff2 = []


def add_callback(callback, *args, **kw):
# print(myfx, args, kw)
ff2.append((callback, args, kw))


def run_fx2(ff):
# print("ff2 = ", ff)
for callback, arg, kw in ff:
callback(*arg, **kw)


add_callback(fx1)
add_callback(fx4, 93)
add_callback(fx4, 93, b=777)
add_callback(fx5, 91, 92, c=93, d=94)
add_callback(fx6, 11, [100, 101, 102])

run_fx2(ff2)



< 실행결과 >



--




반응형
Posted by 자유프로그램
,