#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목[re]class에서 입력파라미터 // 디폴트 인자값을 이용은 함.2019-06-12 10:50
작성자
def defaultArgs(start, end=None, width=1):
    if(end==None):
        # 이런 식으로 인자의 순서를 바꿔줌!!
        # 하나만 들어오면
        # start(사실 end의 역할을 시키고픔) -> 0, end
        end=start
        start=0
    l=[]
    numToAppend=start
    while(numToAppend<end):
        l.append(numToAppend)
        numToAppend+=width
    return l

print(defaultArgs(10))
print(defaultArgs(3, 10))
print(defaultArgs(3, 10, 3))



파이썬은 질문자님이 말씀하신 것 처럼 기본적인 오버로딩은 지원을 안 하니까
디폴트 인자값을 설정해줘서 사용하고 싶은것이죠.

근데, 디폴트 인자값은 뒤에서부터만 정해줄 수 있으니까.
예를 들면 range(start, end, width) 이렇게 하고 싶은데
range(start=0, end, width=1) 이렇게 디폴트 값을 안 준 인자가 존재할 때, 앞에는 인자를 줄 수가 없으니까
약간 트릭?이 필요해요

range(start, end=None, width=1) 이런 식으로 함수를 선언해주고
start 하나만 입력하면
start값, None, 1
-> 0, start값을 end에 대입, 1

start, end만 입력하면
->start값, end값, 1

이런식으로 사용가능할 듯 하네요
댓글
이전class에서 입력파라미터2019-06-12
다음class 소멸자 질문2019-06-11