[파이썬 클래스] 원본 변수가 바뀌는 경우 해결 (copy 함수를 사용해야 하는 이유)
아래 코드를 봅시다. 어떻게 동작하는지 먼저 이해해봅시다. class add : def __init__(self,lst): self.lst=lst.append(5) a=[1,2,3,4,5] mcls=add(a) 위 코드는는 a를 [1,2,3,4,5,5] 으로 바꾸고 mcls.list 에는 아무것도 저장되지 않습니다. 결과는 아래와 같습니다 . >>> a [1, 2, 3, 4, 5, 5] >>> mcls.list list.append(5) 의 결과가 none 이기 때문입니다. 클래스 안의 def 에서 변수를 입력받을 때 참조해서 가져오기 때문에 append 를 적용하면 원본인 a가 바뀝니다. 변수를 참조가 아닌 복사해서 가져오는 방법은 아래와 같습니다. copy 함수를 사용하면 됩니다. class add ..
2023. 5. 25.
[파이썬 클래스] 원본 변수가 바뀌는 경우 해결 (copy 함수를 사용해야 하는 이유)
아래 코드를 봅시다. 어떻게 동작하는지 먼저 이해해봅시다. class add : def __init__(self,lst): self.lst=lst.append(5) a=[1,2,3,4,5] mcls=add(a) 위 코드는는 a를 [1,2,3,4,5,5] 으로 바꾸고 mcls.list 에는 아무것도 저장되지 않습니다. 결과는 아래와 같습니다 . >>> a [1, 2, 3, 4, 5, 5] >>> mcls.list list.append(5) 의 결과가 none 이기 때문입니다. 클래스 안의 def 에서 변수를 입력받을 때 참조해서 가져오기 때문에 append 를 적용하면 원본인 a가 바뀝니다. 변수를 참조가 아닌 복사해서 가져오는 방법은 아래와 같습니다. copy 함수를 사용하면 됩니다. class add ..
2023. 5. 25.