0
프로젝트 작업 중이 이상한 동작이 발생했습니다. 다음 코드는이를 재현하는 방법을 보여줍니다.배열 속성을 사용하여 파이썬 인스턴스를 만드는이 이상한 동작이 발생하는 이유는 무엇입니까?
['x']
['x']
['x']
새로운 TestClass에 인스턴스가 루프 내에서 생성됩니다 가입일 :
class TestClass:
def __init__(self, arr=[]):
self.arr = arr
if __name__ == '__main__':
for i in range(3):
test = TestClass()
test.arr.append('x')
print(test.arr)
나는 다음과 같은 출력을 기대. 대신에 :
['x']
['x', 'x']
['x', 'x', 'x']
나는 오해 했습니까?
파이썬 --version 출력 :
파이썬에서 기본 값이 매번 함수가이 번에 할당,라고하며 매번 당신은 당신이 동일한 개체에 액세스하는 함수를 호출 재 할당되지Python 3.6.3 :: Anaconda, Inc.