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

제목[re]클래스 오버로딩2022-06-08 22:23
작성자

Q. 오버로딩의 개념이 강의로는 잘 이해가 가지 않아 질문드립니다.


클래스 안 매소드에서

def __init__(self, title, authors):


이런 식으로 되어있는것을


def __init__(self, title="",authors=[]):


와 같이 지정하는 것이 오버로딩인가요?

오버로딩의 역할이 무엇인지도 정확히 이해가 가지 않아 질문드립니다.

감사합니다.


A.

오버로딩을 사용하면 같은 이름의 함수를 호출하는데 parameter 개수를 다르게 사용할 수 있습니다.


예를들어 

def book(authors, name) 

이라고 정의된 함수가 있다고 했을 때 해당 함수는 

book([저자1, 저자2], '웹파이썬')

으로 호출해야합니다.

book([저자1, 저자2]) 

와 같이 함수 정의할때 선언한 파라미터를 모두 포함하지 않는다면 에러가 발생합니다.


하지만

def book(authors = [], name = "기본")

이라고 함수를 정의한다면 authors은 []을, name은 "기본"을 default 값으로 갖게 됩니다. 따라서

book([저자1, 저자2]) 

을 호출하게 된다면 전달되지 않은 name은 "기본"으로 설정되게 됩니다.




댓글
이전클래스 오버로딩2022-06-08
다음2020-2학기 기출 질문 있습니다2022-06-08