1 개념
- Object-Oriented Programming (OOP)
- 객체지향 프로그래밍
- 객체 생성은 키워드 class를 사용
2 객체 생성
class
키워드를 사용하여 Person라는 객체 틀을 만듬- Person라는 객체 생성 틀을 가지고 JOHN, JMNOTE를 각각 생성함
Python
Copy
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def print_name(self):
print self.name
def print_age(self):
print self.age
JOHN = Person('john', 30)
JMNOTE = Person('jmnote', 20)
JOHN.print_name() # john
JOHN.print_age() # 30
JMNOTE.print_name() # jmnote
JMNOTE.print_age() # 20
- →__init__와 print_name의 self는 자기 자신을 말함
- print_name를 살펴보면, JOHN.print_name()이 실행 될 때 self는 JOHN, JMNOTE.print_name()이 실행 될 때 self는 JMNOTE가 됨
3 상속
- 상속은 하나의 클래스에서 또 다른 클래스의 정의를 그대로 상속하여 가져옴
Python
Copy
class person:
def __init__(self, name, age):
self.name = name
self.age = age
def print_name(self):
print(self.name)
class programmer(person): # person 객체 상속
def printJob(self):
print('programmer')
class editor(person): # person 객체 상속
def printJob(self):
print('editor')
jmnote = programmer('jmnote', 20)
jmnote.print_name() #jmnote
jmnote.printJob() #programmer
john = editor('john', 30)
john.print_name() #john
john.printJob() #editor:
- → programmer와 editor 클래스에서 person 이라는 슈퍼클래스를 상속하였음
4 객체 스타일
- Python3
- New-style
Python
Copy
class Person(object)
- → 명시적으로 object
- New-style
Python
Copy
class Person:
- → object를 명시하지 않았지만 object는 자동 상속됨
- Python2
- New-style
Python
Copy
class Person(object)
→ python2에서 New-style로 class를 정의 하려면 명시적으로 object를 상속해 주어야함
- Old-style
Python
Copy
class Person:
- → python2에서 명시적으로 object를 상속해 주지 않을 경우 Old-style 클래스로 정의됨
5 참고 자료
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.
- 분류 댓글:
- Python (25)
리눅스 Python 2.7 컴파일 설치 ― …리눅스 Python 2.7 컴파일 설치 ― …리눅스 Python 2.7 컴파일 설치 ― …리눅스 Python 2.7 컴파일 설치 ― …리눅스 Python 2.7 컴파일 설치 ― Jmnote리눅스 Python 2.7 컴파일 설치 ― ㅇㅇㅇ미운코딩새끼 ― 승호 도령미운코딩새끼 ― 불탄고등어미운코딩새끼 ― 김레이미운코딩새끼 ― 호박이미운코딩새끼 ― Junhg0211미운코딩새끼 ― 김왼손미운코딩새끼 ― 용딘이미운코딩새끼 ― Pinkcrimson유기농냠냠파이썬 ― 호박유기농냠냠파이썬 ― 이에스유기농냠냠파이썬 ― 이승현파이썬 global ― Jmnote파이썬 global ― John Jeong파이썬 global ― Jmnote파이썬 global ― John Jeong파이썬 global ― John Jeong파이썬 global ― John Jeong파이썬 global ― Jmnote파이썬 global ― John Jeong