📘 Django 코드에서 점(.)과 언더스코어(_) 완전 정복

2025. 5. 7. 17:52·기술블로그-Django편

📘 Django 코드에서 점(.)과 언더스코어(_) 완전 정복


Django나 Python을 처음 배울 때, 가장 헷갈리는 표현 중 하나가 바로 아래와 같은 코드입니다:

page_object.paginator.page_range

"이건 함수인가? 속성인가? 왜 중간에 _도 있고 .도 있고 헷갈리지?"

이 질문을 정확히 이해하고, **점(.)**과 **언더스코어(_)**의 역할을 완전히 정리해봅니다.


🔹 1. page_object는 내가 정의한 변수

paginator = Paginator(blogs, 10)
page = request.GET.get('page')
page_object = paginator.get_page(page)
  • page_object는 Paginator.get_page()의 결과를 저장한 변수명입니다.
  • page_object는 개발자가 원하는 이름으로 지정할 수 있습니다. (my_page, current_page 등도 가능)

🔹 2. 점(.)은 객체의 속성에 접근

page_object.paginator.page_range
  • .은 Python에서 객체 내부의 속성에 접근할 때 사용하는 문법입니다.
  • 예시 흐름:
    • page_object 객체 안에
    • paginator 속성이 있고
    • 그 안에 page_range라는 또 다른 속성이 있음

📦 시각적 구조:

page_object
  └── paginator
        └── page_range

🔹 3. 언더스코어(_)는 단어를 구분하기 위한 이름 구성

  • page_range나 num_pages처럼 보이는 이름들은
    단순히 변수명이나 속성명이 두 단어 이상으로 구성되어 읽기 쉽게 만든 것입니다.
  • 이 스타일을 snake_case라고 부릅니다.

예시:

속성명 의미

created_at 생성된 날짜
num_pages 전체 페이지 수
page_range 전체 페이지 번호 리스트
previous_page_number 이전 페이지 번호

🔹 4. 함수인지 속성인지 구분하는 법

형태 의미 예시 실행 여부

obj.prop 속성 (값) page_object.paginator ❌ 실행 X
obj.method() 함수 (동작) paginator.get_page(2) ✅ 실행 O
  • 괄호 ()가 붙으면 함수(메서드)
  • 그냥 점(.)으로 이어진 건 속성

🔍 최종 예시 해석

page_object.paginator.page_range
  1. page_object → 현재 페이지 객체 (내가 만든 변수)
  2. .paginator → 이 객체 안에 있는 Paginator 클래스 인스턴스
  3. .page_range → 전체 페이지 숫자 리스트를 반환하는 속성 (예: [1, 2, 3, 4, 5])

✔️ page_range는 함수 아닙니다. 실행하지 않아요!
✔️ 그냥 값을 읽는 속성입니다.


🧠 요약 정리표

기호 역할 예시 의미

. 객체 속성 접근 blog.author.username 속안으로 접근
_ 단어 구분용 이름 구성 created_at 읽기 쉬운 변수명
() 함수 호출 get_page(3) 동작 실행

이제 Django나 Python에서 객체 구조를 읽을 때,
어디가 함수고 어디가 값인지, 그리고 변수명이 어떻게 구성됐는지 훨씬 더 명확하게 이해하실 수 있을 거예요! 😉

'기술블로그-Django편' 카테고리의 다른 글

📌 Django 뷰 구성 전략 - CBV vs FBV, 그리고 혼합 전략까지 완벽 비교 정리  (0) 2025.05.08
📘 URL과 Django에서의 & 사용법 + 검색 유지 페이지네이션 패턴 + Q 객체 완전 이해  (0) 2025.05.07
📘 Django 페이지네이션: 점(...) 생략 표시 조건 완전 정복  (0) 2025.05.07
📘 Django 페이지네이션 템플릿 코드 완전 정복  (0) 2025.05.07
📘 Django Paginator: get_page(함수) vs get.page(속성) 차이 완벽 정리  (0) 2025.05.07
'기술블로그-Django편' 카테고리의 다른 글
  • 📌 Django 뷰 구성 전략 - CBV vs FBV, 그리고 혼합 전략까지 완벽 비교 정리
  • 📘 URL과 Django에서의 & 사용법 + 검색 유지 페이지네이션 패턴 + Q 객체 완전 이해
  • 📘 Django 페이지네이션: 점(...) 생략 표시 조건 완전 정복
  • 📘 Django 페이지네이션 템플릿 코드 완전 정복
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (800) N
      • Python (32)
      • 프로젝트 (118)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    뷔
    self-growth
    trumpmuskclash
    homebartrend
    smartphonedurability
    americanlaw
    americaparty
    youngprofessionals
    classaction
    RM
    travel ban
    btscomeback
    livebroadcast
    urbantrends
    remittance
    hotcoffeecase
    gpterror
    basalcellcarcinoma
    btsreunion
    titaniumcase
    college reunions
    btsdischarge
    life reflection
    newpoliticalparty
    bts
    global politics
    chatgpterror
    chinanightlife
    lawsuitculture
    btsjungkook
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📘 Django 코드에서 점(.)과 언더스코어(_) 완전 정복
상단으로

티스토리툴바