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

제목class 질문입니다.2022-12-13 19:15
작성자

mb-file.php?path=2022%2F12%2F13%2FF2266_%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%2813%29.png
위 사진은 __init__( ) 를 활용하는 사진인데, __init__( ) 의 설명을 읽어보면 모든 객체에 대해서 동일한 값이 아닌 상태로 객체를 만드는 경우라고 되어있고, 입력 파라메터를 두개 받는 것을 볼 수 있습니다.

이 설명을 본 저는 __init__( ) 를 활용하면 setId 와 setName 함수가 더 이상 필요 없을 것이라고 생각하였으나, 교수님이 적어두신 코드에는 여전히 setId 와 setName 함수가 존재했습니다.


mb-file.php?path=2022%2F12%2F13%2FF2267_%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%2815%29.png
(위 사진은 제가 __init__( ) 함수를 활용한 코딩을 교수님과 다르게 제가 생각하는대로, 즉 setId 와 setName 함수를 제거하고 짠 것입니다. 결과는 동일하게 나옴을 확인할 수 있습니다.)


그 이후 __str__( ) 함수의 경우에도 설명을 읽은 저는 __str__( ) 함수를 활용하면 모든 attribute에 일일히 print를 거는 것이 아닌 객체 전체에 print를 한번만 걸어도 Id 와 Name 이 모두 출력될 것이라고 생각하였습니다. 

하지만 교수님이 적어두신 코드는 __str__( ) 함수를 사용함에도 불구하고 여전히 모든 attribute에 일일히 print가 걸려있었습니다.

mb-file.php?path=2022%2F12%2F13%2FF2268_%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%2817%29.png
mb-file.php?path=2022%2F12%2F13%2FF2269_%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%2819%29.png
(위 사진 두 장은 교수님이 적어두신 코드입니다.)


mb-file.php?path=2022%2F12%2F13%2FF2270_%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%2821%29.png
(위 사진은 제가 __str__( ) 함수를 사용함으로써 기대했던 모습입니다. 교수님의 코드와 결과값이 다름을 확인하였습니다.)


혹시 교수님이 ___init__( ) 함수와 __str__( ) 함수를 사용하시고도 여전히 코드를 동일하게 짜신

(__init__( ) 의 경우 setId, setName 을 쓴 것, __str__( ) 의 경우 모든 attribute에 print를 건 것) 

이유가 있는지 궁금해서 질문드립니다.

댓글
이전14일자 기말고사 관련 질문2022-12-15
다음[re]class 질문입니다.2022-12-13