-
python TIL ( __init__(), overloading )python 2022. 11. 24. 18:52
오늘 실시간 강의에서 LinkedList 에 대해 강의를 해주셨다.
진도가 엄청나게 빠른듯한 느낌이긴 한데, 어쩄든
링크드리스트의 노드를 만드려고 클래스를 선언하다가 띠용? 싶은 부분이 있었다
__init__()
class Node(): def __init__(self): self.data = None self.next = None
__init__()은 클래스 생성자 메소드 인데, 이건 python 기본 규칙인것 같다.
물론 생성자 느낌으로 다른 메소드 만들어서 구현은 가능하긴 함!
하지만 클래스 이름만 떡 써서 구현하려면 __init__을 활용해야 함
나는 강의를 들으며 당연하게도 생성자를 Node()라고 적고 시작했었고.. 응 안되는구나..
overloading
class Node(): def __init__(self): self.data = None self.next = None def __init__(self, data): self.data = data self.next = None def __init__(self, data , data2): self.data = data self.data2 = data2 self.next = None
응 생성자가 __init__ 이구나 이제 알았어! 싶은 마음에
습관대로 너무 당연하게도 오버로딩을 시전하였으나.
python아 너 오버로딩이 안되는구나? python 문법이나 제한이 java와 C++과 다를 때 그러려니 하고 넘어갔는데,
오버로딩이 안될땐 순간 짜증이 나더라.
그러면서도 아 오늘의 TIL은 이거다 싶은 기쁨과빡침의공존
하지만 이것의 해결방법도 실로 간단했으니..
class Node(): def __init__(self, data=None, data2=None): self.data = data self.data2 = data2 self.next = None a = Node(5) b = Node(5, 6) print(a.data, a.data2) print(b.data, b.data2)
실행결과 이... 이 변수 지정 안해주면 기본값으로 할당되는 저 개념.. 이름이 뭐더라?
까먹었고 어쩄든 저 개념이 여기서 너무 유용하게 사용되어지는것
그래도 생성자에 한해서는 오버로딩이 안되는게 너무 불편할 듯 싶다는 생각
오늘은 self와 Init과 overloading 3연타로 뚜드려맞아서 짜증이마구날뻔했지만.
긍정파워로 이겨낸 보람찬 하루였다
끝
'python' 카테고리의 다른 글
python TIL ( list, dictionary ...) (0) 2022.11.23 python TIL ( for문, ord(), upper(), isalpha(), 함수 선언 등 ) (0) 2022.11.22