📘 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)
      • 프로젝트 (115) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바