파이썬 참고용 코드

수시로 추가함.

 

출처는 주로

 - 레벨업 파이썬 (https://wikidocs.net/83506)

 - 파이썬 코딩 도장 (https://dojang.io/mod/page/view.php?id=2427)

 - 점프투파이썬 (wikidocs.net/book/1)

 

 

가변인자 사용 예시

def foo(*args):
    print(args)

foo(1, 2, 3)
foo(1, 2, 3, 4)

def foo(**kwargs):
    print(kwargs)


foo(a=1, b=2, c=3)


def foo(*args, **kwargs):
    print(args)
    print(kwargs)


foo(1, 2, 3, a=1, b=1, c=2)

 

 

데코레이터 사용 예시

def outer(out1):
    def inner(in1):
        print("inner function called")
        print("outer argument: ", out1)
        print("inner argument: ", in1)
    return inner


f = outer(1)
f(10)

############################################################################

def trace(func):                             # 호출할 함수를 매개변수로 받음
    def wrapper():                           # 호출할 함수를 감싸는 함수
        print(func.__name__, '함수 시작')    # __name__으로 함수 이름 출력
        func()                               # 매개변수로 받은 함수를 호출
        print(func.__name__, '함수 끝')
    return wrapper                           # wrapper 함수 반환
 
def hello():
    print('hello')
 
def world():
    print('world')
 
trace_hello = trace(hello)    # 데코레이터에 호출할 함수를 넣음
trace_hello()                 # 반환된 함수를 호출
trace_world = trace(world)    # 데코레이터에 호출할 함수를 넣음
trace_world()                 # 반환된 함수를 호출


############################################################################



def trace(func):                             # 호출할 함수를 매개변수로 받음
    def wrapper():
        print(func.__name__, '함수 시작')    # __name__으로 함수 이름 출력
        func()                               # 매개변수로 받은 함수를 호출
        print(func.__name__, '함수 끝')
    return wrapper                           # wrapper 함수 반환
 
@trace    # @데코레이터
def hello():
    print('hello')
 
@trace    # @데코레이터
def world():
    print('world')
 
hello()    # 함수를 그대로 호출
world()    # 함수를 그대로 호출

 

 

# 로깅

import logging

logging.basicConfig(filename="mylog.txt", level=logging.INFO)

def hap(a, b):
    ret = a + b
    logging.info(f"input: {a} {b}, output={ret}")
    return ret

result = hap(3, 4)

댓글

Designed by JB FACTORY