
오늘은 오전에만 수업 하고 오후엔 자습을 했다.
이 분야를 공부해보니 관심도 많이 생기고 더 배우고 싶다는 생각도 많이 들었다.
고민이 생겨버렸네,,훔,,,내가 원하는 산업과 빅데이터를 접목시켜서 공부한걸 써먹을 수 있는 곳으로 가야지!
할수있다아ㅏㅏ
<객체 지향 프로그래밍>
◇ 인스턴트 사용하기
기능을 묶은 하나의 단일 프로그램을 객체라는 코드에 넣어 다른 프로그래머가 재사용할 수 있게 해주는 기법
▶# SoccerPlayer 클래스 선언
class SoccerPlayer(object): 이 클래스에서 사용할 속성(변수)를 선언하는 함수
def __init__(self, name, position, back_number): #__init__선수의 속성값을 구현해줌. self는 반드시 사용해야 됨
self.name = name
self.position = position
self.back_number = back_number
# 선수의 등번호를 변경해서 출력하는 함수
def change_back_number(self, new_number): #self는 형식적으로 넣어줌
print("선수의 등번호를 변경한다: From %d to %d" % (self.back_number, new_number))
self.back_number = new_number
# %d은 정수형이 온다는 뜻
# 클래스로 인스턴스를 생성했을 때, 그 인스턴스 자체를 print 함수로 화면에 출력하면 나오는 값(보통 인스턴스의 정보 표시)
def __str__(self):
return "Hello, My name is %s. I play in %s in center." % (self.name, self.position)
▶인스턴스 호출
jinhyun = SoccerPlayer("Jinhyun", "MF", 10)
◇ 클래스를 사용하는 이유
다른 사람들이 결과를 사용할 때 이 데이터가 무엇을 위한 데이터인지 명확히 알 수 있다.
▶데이터
names = ["Messi", "Ramos", "Ronaldo", "Park", "Buffon"]
positions = ["MF", "DF", "CF", "WF", "GK"]
numbers = [10, 4, 7, 13, 1]
전체 SoccerPlayer 코드
class SoccerPlayer(object):
def __init__(self, name, position, back_number):
self.name = name
self.position = position
self.back_number = back_number
def change_back_number(self, new_number):
print("선수의 등 번호를 변경한다: From %d to %d" % (self.back_number, new_number))
self.back_number = new_number
def __str__(self):
return "Hello, My name is %s. I play in %s in center." % (self.name, self.position)
클래스-인스턴스
player_objects= [SoccerPlayer(name, position, number) for name, position, number in zip(names, positions, numbers)]
for i in range(0, len(names)):
print(player_objects[i])
Hello, My name is Messi. I play in MF in center.
Hello, My name is Ramos. I play in DF in center.
Hello, My name is Ronaldo. I play in CF in center.
Hello, My name is Park. I play in WF in center.
Hello, My name is Buffon. I play in GK in center.
◇ 상속
▶# 부모 클래스
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
# Person 클래스를 상속받는 Korean 클래스 -> 자식 클래스
class Korean(Person):
pass #pass는 아무런 기능이 없을때 형식적으로 넣어주는 것
# 인스턴스 생성
first_korean = Korean("Sungchul", 35)
print(first_korean.name)
print(first_korean.age)
Sungchul
35
▶ 부모 클래스
class Person(object): # 부모 클래스 Person 선언
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def about_me(self): # 메서드 선언
print("저의 이름은", self.name, "이고요, 제 나이는", str(self.age), "살입니다.")
▶자식 클래스
class Employee(Person): # 부모 클래스 Person으로부터 상속
def __init__(self, name, age, gender, salary, hire_date):
super().__init__(name, age, gender) #super는 부모클래스의 어떤 것을 가져다 쓰겠다는 것 # 부모 객체 사용
self.salary = salary
self.hire_date = hire_date # 속성값 추가
def do_work(self): # 새로운 메서드 추가
print("열심히 일을 한다.")
def about_me(self): # 부모 클래스 메서드 재정의(오버라이딩)
super().about_me() #부모 클래스 메서드 사용. 부모클래스에 있는 about_me를 쓴다는 것
print("제 급여는", self.salary, "원이고, 제 입사일은", self.hire_date, "입니다.")
▶employee = Employee("Sungchul", 21, 'male', 1000, "2021-12-01" )
▶employee.about_me()
저의 이름은 Sungchul 이고요, 제 나이는 21 살입니다.
제 급여는 1000 원이고, 제 입사일은 2021-12-01 입니다.
'PYTHON' 카테고리의 다른 글
[빅데이터 분석] 2021.12.28 프로그래밍, HTML (0) | 2021.12.29 |
---|---|
[빅데이터 분석] 2021.12.24 예외처리, 파일 다루기, Pickle 모듈, CSV 파일, 로그 관리, 설정 저장 (0) | 2021.12.24 |
[빅데이터 분석] 2021.12.22 자료구조, 파이썬 스타일 코드 (0) | 2021.12.22 |
[빅데이터 분석] 2021.12.21 Numpy (0) | 2021.12.21 |
[빅데이터 분석] 2021.12.21 Titanic (0) | 2021.12.21 |