"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python에서 참조로 정수를 전달할 수 있나요?

Python에서 참조로 정수를 전달할 수 있나요?

2024년 11월 14일에 게시됨
검색:824

Can You Pass Integers by Reference in Python?

Python에서 참조로 전달: 개요 및 해결 방법

Python의 모든 것이 값으로 전달된다고 가정하는 경우가 많아 프로그래머가 궁금해합니다. 참조로 전달할 수 있는 방법이 있다면. 이 기사에서는 참조를 통해 함수에 정수를 전달하는 것의 복잡한 점을 살펴보고 실용적인 해결 방법을 제공합니다.

정수 불변성

파이썬의 전달 방식을 비교하고 싶은 유혹을 느낄 수도 있습니다. 참조 유형에 대한 Java의 참조별 전달에 대한 값 동작을 수행하려면 Python에서 정수가 불변이라는 점에 유의하는 것이 중요합니다. 즉, 정수 값을 직접 변경할 수 없습니다.

해결 방법: 컨테이너 사용

한 가지 해결 방법은 목록과 같은 컨테이너 내에서 정수를 전달하는 것입니다. 수정될 수 있습니다. 예를 들어, 다음 코드를 고려해보세요:

def change(x):
    x[0] = 3

x = [1]
change(x)
print(x)

여기서 정수는 목록에 싸여 변경 함수에 전달됩니다. 함수 내에서 목록의 요소가 수정되어 원래 정수가 효과적으로 수정됩니다.

수정된 값 반환

또 다른 접근 방식은 함수가 수정된 값을 반환하도록 하는 것입니다. 그런 다음 원래 변수에 할당할 수 있습니다. 이는 아래에 설명되어 있습니다:

def multiply_by_2(x):
    return 2*x

x = 1
x = multiply_by_2(x)

이 경우 곱하기_by_2 함수는 수정된 값을 반환한 다음 x에 저장됩니다.

모범 사례

위의 해결 방법을 사용하면 참조별 전달 동작을 에뮬레이트할 수 있지만 다음 모범 사례를 고려하는 것이 중요합니다.

  • 컨테이너는 혼란스럽고 불필요한 복잡성을 초래할 수 있으므로 자제해서 사용하세요.
  • 가능하면 수정된 값을 반환하는 것이 좋습니다.
  • 혼란을 피하기 위해 이러한 해결 방법을 사용하는 모든 기능을 명확하게 문서화하세요.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3