ABOUT ME

포소니는 나의 하루이자 누군가의 공감입니다. 조용히 머물러도 좋고, 가볍게 이야기를 남겨도 좋아요. 당신의 일상도, 이곳에 스며들길 바랍니다.

Today
Yesterday
Total
  • Python Basic
    Tech/Python 2019. 1. 1. 15:07
    반응형



    #>>>>>>>>>>>>>>>> [인자값을 tuple 로 받기]
    def say_hello(*params):
    # print(params)
    for param in params:
    print(param)

    say_hello('hi','world','gavin')

    myParams = ('hello','gavin','kim')
    say_hello(*myParams)


    # [인자값을 dictionary 로 받기]
    def menu(**kwargs):
    # print(kwargs)
    for k,v in kwargs.items():
    print(k,v)


    menu(eat = 'beef',drink='coffee')


    myDic = {
    'eat':'beef',
    'drink' : 'latte',
    'dessert':'banana'
    }
    menu(**myDic)


    #>>>>>>>>>>>>>>>>>>>>>>>> [(docstring) 함수에 대한 설명 출력 하는 기능]
    def my_menu(param1,param2):
    """my_menu 에 대해 설명 합니다.
    Args:
    param1 (int): 첫 번째 파라미터 입니다.
    param2 (str): 두번째 파라미터 입니다.
    Returns:
    bool: 리턴 값은 boolean 값입니다.
    """
    print(param1,param2)
    return True


    print(my_menu.__doc__) # my_menu 함수에 대한 설명을 출력하도록 합니다.


    #>>>>>>>>>>>>>>>>>>>>> [데코레이터 사용법]
    # 어떤 함수가 실행전 선행 되어야 할 작업이 있을 경우 데코레이터를 만들어 사용하면 편리하다.
    # 데코레이터를 중첩하여 사용할수도 있다.

    #데코레이터 함수 만들기
    def print_info(func):
    def wrapper(*args, **kwargs):
    result = func(*args, **kwargs)
    print('[선행작업 start ...]')
    print('[선행작업 end...]')
    return result
    return wrapper

    #데코레이터 함수 만들기
    def print_more(func):
    def wrapper(*args, **kwargs):
    result = func(*args, **kwargs)
    print('[선행작업 func:]',func.__name__)
    print('[선행작업 args:]',args)
    print('[선행작업 kwargs:]', kwargs)
    return result
    return wrapper

    #데코레이터 적용
    @print_info
    def add_num(a,b):
    return a+b

    @print_info
    def sub_num(a,b):
    return a-b

    @print_info
    @print_more
    def hello_add_num(a,b):
    return a+b

    #데코레이터 테스트
    print(add_num(10,20))
    print(sub_num(20,10))
    print(hello_add_num(40,50))


    #>>>>>>>>>>>>>>>>>> [리스트 내부에서 조건 사용]
    t1 = (1,2,3,4,5,6,7,8,9)
    r = []
    r = [i for i in t1 if i%2==0]
    print(r)

    t2 = (1,2,3,4,5,6,7,8,9)
    r = [i*j for i in t1 for j in t2]
    print(r)


    #>>>>>>>>>>> 커스텀 에러클래스를 만들어 사용
    class UppercaseError(Exception):
    pass

    def check():
    words = ['Apple','orange','banana']
    for word in words:
    if word.isupper():
    raise UppercaseError(word)

    try:
    check()
    except UppercaseError as e:

    print('this is my fault. go next')


    반응형

    'Tech > Python' 카테고리의 다른 글

    타입 힌팅  (0) 2019.01.06
    함수를 변수처럼 전달하기  (0) 2019.01.06
    python 다중 상속  (0) 2019.01.06
    python class  (0) 2019.01.03
    python command line args  (0) 2019.01.01
Designed by Tistory.