• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] Python - Class/Object (클래스/객체) ※ __init__() 함수

1332  

목차

  1. Class (클래스) / Object (객체)
  2. Class 생성
  3. Object 생성
  4. __init__() 함수
  5. Object 메서드
  6. self 매개변수
  7. Object 속성 수정
  8. Object 속성 삭제
  9. Object 삭제 (= del 키워드)
  10. pass 구문

 

Class (클래스) / Object (객체)

 

1. 

Python은 객체 지향 언어.

 

2. 

Python의 대부분은 Object (객체)임. 

※ 개별 속성/메서드 보유.

 

3. 

Class (클래스)는 Object (객체) 생성하는 기본 설계도와 비슷.

 

 

Class 생성

 

class 키워드 사용해 클래스 생성.

※ 클래스명의 첫 글자는 대문자 권장.

 


[구문]

 

class 클래스명:

  클래스내용

 


[예제] Hz라는 클래스 정의.

 

class Hz:

  x = 3


print(Hz) 

 

결과값:  <class '__main__.Hz'>

 

Object 생성

 

클래스로 객체 생성.

 


[예제] Hz 클래스로 obj 객체 생성.

 

class Hz:

  x = 3


obj = Hz()

print(obj) 

 

결과값:  <__main__.Hz object at 0x000001A57365FF40>

 

__init__() 함수

위 예제는 가장 단순한 클래스라 거의 사용 안 함.

※ 클래스 이해하려면, __init__() 함수 이해 필요.

 

★ __init__() 함수

1. 모든 클래스에 기본 내장.

2. 클래스 시작 시 항상 실행. (즉, 객체 생성 때마다 자동 호출됨.)

3. 용도: ① 객체 속성에 값 할당. ② 객체 생성 시 수행할 작업 정의.

 


[예제]

 

class Mb:

  def __init__(self, name, level):

    self.name = name

    self.level = level


m1 = Mb("sinbi", 10)


print(m1.name) # sinbi

print(m1.level) # 10 

 

 

Object 메서드

 

객체는 메서드도 포함 가능.

※ 메서드 : 객체 소속 함수.

 


[예제]

 

class Mb:

  def __init__(self, name, level):

    self.name = name

    self.level = level

  def hello(self):

    print(self.name + " 님, 반가워요.")


m1 = Mb("sinbi", 10)

m1.hello() # sinbi 님, 반가워요.

 

 

self 매개변수

 

1. 

클래스의 현재 인스턴스에 대한 참조.

※ 인스턴스 : 클래스로 현재 생성한 객체.

 

2. 

클래스에 속하는 변수 접근에 사용됨.

 

3.

self 대신 다른 명칭 사용 가능.

※ 심지어, 함수끼리 달라도 됨.

단, 클래스 안 모든 함수의 첫 번째 매개변수여야 함.

 


[예제] self 대신 man, guy 사용. 

 

class Mb:

  def __init__(man, name, level):

    man.name = name

    man.level = level

  def hello(guy):

    print(guy.name + " 님, 반가워요.")


m1 = Mb("sinbi", 10)

m1.hello() # sinbi 님, 반가워요.

 

 

Object 속성 수정

※ 객체의 속성을 재정의 하는 형태로 수정 가능.

 

class Mb:

  def __init__(self, name, level):

    self.name = name

    self.level = level

  def hello(self):

    print(self.name + " 님, 반가워요.")


m1 = Mb("sinbi", 10)

m1.level = 20

print(m1.level) # 20


 

Object 속성 삭제

del 키워드 사용해 객체의 속성 삭제.

 

class Mb:

  def __init__(self, name, level):

    self.name = name

    self.level = level

  def hello(self):

    print(self.name + " 님, 반가워요.")


m1 = Mb("sinbi", 10)

del m1.level

print(m1.level) # 에러 발생.

결과값: AttributeError: 'Mb' object has no attribute 'level'

 

Object 삭제 (= del 키워드)

del 키워드로 객체 삭제.

 

class Mb:

  def __init__(self, name, level):

    self.name = name

    self.level = level

  def hello(self):

    print(self.name + " 님, 반가워요.")


m1 = Mb("sinbi", 10)

del m1

print(m1) # 에러 발생

 

결과값: NameError: name 'm1' is not defined

 

pass 구문

 

Class는 정의 내용이 없으면 에러 발생하는데,

정의 부분에 pass 키워드 넣어두면 에러 안 남.

 


[예제1] 에러 발생 X

 

class Mb:

  pass

 


[예제2] 에러 발생 O

 

class Mb:

 



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/2
목록
찾아주셔서 감사합니다. Since 2012