[Python] 클래스

2024. 12. 18. 16:19·Programming/Python

객체지향 언어에서 꽃은 클래스라고 생각한다. 오늘은 클래스에 대해서 다시 복습을 해볼 것이다. 

Python 클래스

클래스는 객체를 표현하기 위한 문법으로 체크박스, 스크롤바 같은 특정한 개념이나 모양이 존재하는 것을 객체라고 한다. 이렇게 객체를 사용한 프로그래밍 언어를 객체지향이라고 한다. 자주 사용되는 List, 딕셔너리 등 모두 각자의 용도의 맞게 만들어진 클래스들이다. 

 

클래스는 두가지로 구분된다. 1. 속성 / 2. 메소드 이다. 속성의 경우 매개변수를 받고 사용하기 위한 값을 정의하고, 메소드는 만들어진 속성들을 이용해서 어떤 행위를 하는 실행 코드라고 생각하면 된다. 이해를 좀 더 쉽게 하자면, 메이플 게임을 예로 들면 되는데 , 게임에서 클래스(직업)이 있는데, 각각의 클래스(궁수, 전사, 도적, 마법사)가 있고, 그 안의 속성(운, 힘, 지능 등)이 있고, 각각의 메소드(스킬)이 있다고 생각하면 이해가 좀 더 될 것 같다.

 

# 클래스, 인스턴스 생성과 메소드 호출 하는 방법

class jobs: //클래스 생성
	
    // 메소드 생성
    def warrior(self):
    	print("찌르기!!")
	def atcher(self):
    	print("활쏘기!!")

//인스턴스 생성        
kim = jobs()
shin = jobs()

// 메소드 호출
kim.warrior()
shin.atcher()

 

위에서는 클래스(직업)를 만들고 , 각각의 인스턴스(전직)를 생성했으며, 인스턴스 메소드(스킬)을 쓰는 것을 볼 수 있다.  

 

# 속성

이제는 위에 했던 거에서 속성을 추가를 해볼 것이다. __int__ 메소드를 introduce = Member('주먹 펴고', 120, "아델")처럼 인스턴스를 생성할 때 호출되는 특별한 메소들이다. 이렇게 인스턴스를 초기화하고 순서에 맞춰서 각 인수를 self.속성값으로 할당한다. 

class jobs: //클래스 생성
    #속성 생성
    def __int__(self, name, level, jobs):
    	self.name = name
        self.level = level
        self.jobs = jobs
    # 메소드 선언
    def info(self):
    	print("게임 닉네임은 {0}이고, 레벨는 {1}, 직업은 {2}이다." .format(self.name, self.level, self.jobs))

# jobs의 Gchracter 인스턴스 생성
Gcharacter = jobs("주먹 펴고", 200, "아델")

# jobs의 Gchracter 인스턴스의 info 메소드 호출
Gcharacter = info()

 

저작자표시 비영리 변경금지 (새창열림)

'Programming > Python' 카테고리의 다른 글

[Python] Python 기반 웹 페이지 mariaDB로 생성한 데이터베이스 연동  (0) 2025.01.15
[Python] 람다 함수  (0) 2024.12.29
[개념]packing 과 unpacking  (1) 2024.11.13
[Python] VPC 구축  (0) 2024.07.10
[Python] 연산자 끼워넣기  (0) 2024.05.07
'Programming/Python' 카테고리의 다른 글
  • [Python] Python 기반 웹 페이지 mariaDB로 생성한 데이터베이스 연동
  • [Python] 람다 함수
  • [개념]packing 과 unpacking
  • [Python] VPC 구축
Kouji
Kouji
Journey to Becoming a Data & Server Engineer
  • Kouji
    Kouji's Data & Server Journey
    Kouji
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • SQL
      • Data & AI
        • Data Analysis
        • Ai
      • Cloud(AWS)
      • OS
        • Linux
        • Docker
        • Jenkins
        • Ubuntu
        • Window
        • Kubernates
        • Ansible
      • Network
        • NVIDIA
        • Network[이론]
        • Network[GNS3, Packet]
        • Network[On-Premise]
        • Network [L2, L3]
      • 트러블 슈팅
      • Life
        • My Career Stories
        • Personal
      • 개발 + OS 지식 함양
  • 블로그 메뉴

    • 홈
    • 관리 페이지
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크
    라우팅
    티스토리챌린지
    VMware
    오블완
    도커
    스위치
    CISCO
    웹
    네트워크관리사
    보안
    네트워크엔지니어링
    L3
    인프라
    ubuntu
    서버
    화이팅
    인프라엔지니어
    시스템엔지니어
    알고리즘
    서버엔지니어
    OS
    AWS
    네트워크엔지니어
    dns
    docker
    클라우드엔지니어
    IT
    리눅스
    Linux
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kouji
[Python] 클래스
상단으로

티스토리툴바