Big Ben
Big Ben's Log
Big Ben
전체 방문자
오늘
어제
  • 전체 글 (80)
    • 파이썬 (23)
      • 파이썬 기초 (5)
      • 클래스 (6)
      • 자료구조 (4)
      • Tensorflow (3)
      • PyTorch (2)
      • konlpy (1)
      • anaconda (1)
    • 머신러닝 (3)
      • 선형회귀 (1)
      • Tree 기반 (1)
    • 딥러닝 (6)
      • NLP (2)
      • VISION (2)
      • TABULAR (0)
      • 딥러닝 서버 구축 (2)
    • 그래프 이론 (1)
      • 그래프마이닝 (1)
      • GNN (0)
    • 강화학습 (3)
      • 강화학습 기본 (3)
    • 인공지능 (5)
    • 추천시스템 (2)
      • 추천시스템 기초 (2)
    • Competitions (1)
    • 빅데이터 (8)
      • 하둡 (3)
      • 스파크 (4)
      • 클라우드 (1)
    • SQL (7)
      • MariaDB (2)
    • 논문 리뷰 (2)
    • 대학원 (0)
      • 데이터 사이언스 (0)
      • 경제학 (0)
    • 선형대수학 (7)
      • 선형대수 ICE BREAKING (1)
      • 벡터 (5)
      • 고윳값 (1)
    • 개인프로젝트 (0)
      • 포트폴리오 대시보드 + AI기반 주식 자동매매 (0)
    • 재테크 (1)
    • 자동차 (0)
    • 알고리즘 (11)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 딥러닝
  • class
  • pytorch
  • 프로그래머스
  • mysql
  • AI
  • 객체지향
  • 백준
  • 파이썬
  • 선형대수학
  • 프로그래밍
  • 데이터베이스
  • MariaDB
  • 파이썬기초
  • sql
  • Baekjoon
  • 코테
  • 객체
  • PYTHON
  • TensorFlow
  • 빅데이터
  • 데이터사이언스
  • 하둡
  • 데이터
  • 인공지능
  • 자료구조
  • 코딩테스트
  • 머신러닝
  • 선형대수
  • 알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Big Ben

Big Ben's Log

파이썬/자료구조

[python] 함수 활용 시 매개변수가 뮤터블 vs 이뮤터블 일때..

2022. 12. 19. 19:09
반응형

파이썬에서는 매개변수에 실제 인수가 대입된다. 복사가 아니라는 점을 명심해야한다. 

 

파이썬에서 인수 전달은 실제 인수인 객체에 대한 참조를 값으로 전달하여 매개변수에 대입되는 방식이다. 

 

다른 프로그래밍 언어에서는 실제 인수의 값을 매개변수에 복사하는 값에 의한 호출(call by value)를 사용하거나, 실제 인수의 참조를 매개변수에 복사하여 매개변수가 실제 인수와 같아지는 참조에 의한 호출 (call by reference)를 사용한다.

 

하지만 python은 객체 참조에 의한 전달(call by object reference)를 활용하는데, 위 2가지 호출의 중간 방식으로 인지하면 된다.

 

따라서 함수 생성 시, 

 

1. 인수가 immutable 일 때: 함수 안에서 매개변수의 값을 변경하면 다른 객체를 생성하고 그 객체 애대한 참조로 업데이트가 된다. 따라서 매개변수의 값을 변경해도 호출하는 쪽의 실제 인수에는 영향을 주지 않음.

 

2. 인수가 mutable 일 때: 함수 안에서 매개변수의 값을 변경하면 객체 자체를 업데이트 함. 따라서 매개변수의 값을 변경하면 호출하는 쪽의 실제 인수는 값이 변경됨

반응형
저작자표시 (새창열림)

'파이썬 > 자료구조' 카테고리의 다른 글

[python] stack 구현 (고정길이 스택 fixed stack, class 활용)  (0) 2023.03.06
[Python] append vs extend (list의 append와 extend 차이점)  (0) 2022.12.27
[python] 던더함수, 더블언더스코어 의미 (__len__), (__contains__)  (0) 2022.12.23
    '파이썬/자료구조' 카테고리의 다른 글
    • [python] stack 구현 (고정길이 스택 fixed stack, class 활용)
    • [Python] append vs extend (list의 append와 extend 차이점)
    • [python] 던더함수, 더블언더스코어 의미 (__len__), (__contains__)
    Big Ben
    Big Ben
    Data Scientist

    티스토리툴바