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

제목[re]클래스 파트 관련 질문드립니다!2022-11-11 01:38
작성자

안녕하세요.


이해가 가실 수 있도록 최대한 쉽게 설명드리겠습니다.


함수의 parameter에서 default값으로 num을 random.randint(0, 2)로 정의하셨습니다.


원래는 보통 그렇게 하기보다는 함수의 parameter에서 받지 않고, 그냥 아래 코드인 self.num = random.randint(0, 2) 이렇게 하시면 됩니다.


이렇게 하시면 정상적으로 작동합니다.


---

처음 방식이 계속 같은 값이 나왔던 이유는 함수 parameter에서 default 값으로 정의된 내용을 사용한다면


이미 메모리 한 켠에 저장되어있는 random.randint(0, 2)의 값이 계속 동일하게 지정됩니다.


예를 들어, 메모리 상에서 주소값이 1인 곳에 random.randint(0, 2)가 들어있으면, a.num, b.num, c.num 모두 주소값이 1인 곳에 있는 내용을 할당하게 되어 사용합니다.


따라서 모두 같은 값으로 나타나는 것입니다.

댓글
이전클래스 파트 관련 질문드립니다!2022-11-10
다음class 실습 질문2022-11-09