파이썬 클래스 이해하기-2 파이썬을 활용한 금융 데이터 분석 기초 및 심화 과정 1 1.

Slides:



Advertisements
Similar presentations
M 당 강령, 정책  비정규직과 정규직 간 차별철폐, 동일노동 동일 임금 실현, 최저임금제 현실화, 비정규직의 정규직화 추진 등을 통해 최소한의 인간다 운 생활을 보장한다.  그리고, 우리당은 지난 대선 당시 한국노 총, 민주노총과 정책협약을 통해 약속했던 것처럼.
Advertisements

Combacsa’s SPARCS Web Seminar. xUnit Framework Python : unittest Other testing tools.
폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
上海華東師大 연수설명회.
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
간호와 상담 정윤희 간호사.
Melon vs. Mnet 음원 사이트 검색시스템 비교.
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
2008년 역량 개발 계획서 작성자 소속 인재육성그룹 직급 B3 사번 성명 홍 길 동 확인자 소속 인재육성그룹
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express Slide 1 (of 25)
Java Presentation 중간 시험2 풀이
상속.
Information Technology
16강. 자바 빈 빈 이란? 빈 만들기 빈 관련 액션 태그(useBean, getProperty, setProperty)
Internet Computing KUT Youn-Hee Han
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
2012학년도 무주고등학교 입시 설명회 본교 방문을 진심으로 환영합니다.
C++ 프로그래밍 2009년 2학기 전자정보공학대학 컴퓨터공학부.
C++ 프로그래밍 2007년 1학기 전자정보공학대학 컴퓨터공학부.
10장 객체-지향 프로그래밍 II ©창병모.
Computer Science & Engineering
자바 5.0 프로그래밍.
1. 시멘틱웹(Semantic Web) Preview 항목 상세내역 개요 기출여부 관련KeyWord 추천사이트
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
7장 클래스.
Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe
Power Java 제7장 클래스와 객체.
구현 기능 목록 1. Pipeline Submission 기능
시스템 분석 및 설계.
발로 하는 파이썬 세미나 안녕하세요. 저는 발로 하는 파이썬 세미나를 발표할….
-제어문, 함수, 클래스- IS lab. 김건영 Python -제어문, 함수, 클래스- IS lab. 김건영
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
4. 관계 데이터베이스 (Relational Database)- 7, 8장
소프트웨어 공학 (Software Engineering)
데이터베이스 (Databases) 데이터베이스 소개 문양세 강원대학교 IT대학 컴퓨터과학전공.
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
컴퓨터공학실습(I) 3주 인공지능연구실.
데이터베이스 (Database) 데이터베이스와 데이터베이스 사용자 문양세 강원대학교 IT대학 컴퓨터과학전공.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
JA A V W. 04.
도형의 닮음 Ⅵ-1 도형의 닮음 (1) 닮음과 닮은 도형 닮음
XML-II (eXtensible Markup Language) DTD/DOM
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
7강. 객체지향 프로그램의 본질 메소드 프로그래밍의 한계 객체의 개념 및 클래스의 이해
Lua script cpp서 사용하기 Lua 버전
2 배열과 구조.
[ 단원 06 ] 상속과 다형성.
3장,4장 발표 서정우.
자바 5.0 프로그래밍.
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
C# 10장. 참조형.
동남권 인재 유출입 현황 및 특성분석 발 표 자: 류장수(부경대 교수/부산고용포럼 공동대표)
Self-Leadership 긍정의 힘 - Mind Power.
2015년 2학년 1반.
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
Dept. of Internet Information Eng.
Java 5장. 객체지향 개념 public class SumTest {
1-4.
유예 X-FILE *조사자* 1301권희원 1315이예지 1317장아정 1322홍자현.
Spring, 2019 School of CSE Pusan National University
111. 나는 믿네 예수는 부활이요 생명이니 나는 믿네 아멘 예수는 부활이요 생명이니 아멘 아멘 아멘 예수 믿는 사람 예수님과
2장. 데이터베이스 시스템 개념과 아키텍처 2.1 데이터 모델, 스키마, 인스턴스
2단원. 지표의 변화 마무리 폭탄 game!!!.
Presentation transcript:

파이썬 클래스 이해하기-2 파이썬을 활용한 금융 데이터 분석 기초 및 심화 과정 1 1

클래스 변수 vs. 인스턴스 변수 클래스 변수(Class Variable) 인스턴스 변수(Instance Variable) self가 안 붙음 클래스 이름을 통해 접근 인스턴스 변수(Instance Variable) self가 붙음 인스턴스 이름을 통해 접근

클래스 변수 사용 예 은행 계좌 클래스 생성자에서 고객 이름을 받음 계좌가 생성될 때 전체 계좌수가 1 증가 계좌가 삭제될 때 전체 계좌수가 1 감소 >>> class Account: num_accounts = 0 def __init__(self, name): self.name = name Account.num_accounts += 1 def __del__(self): Account.num_accounts -= 1 >>>

Account 클래스 인스턴스 생성 객체의 소유자 정보 확인 >>> class Account: num_accounts = 0 def __init__(self, name): self.name = name Account.num_accounts += 1 def __del__(self): Account.num_accounts -= 1 >>> >>> kim = Account("kim") >>> lee = Account("lee") >>> >>> kim.name 'kim' >>> lee.name 'lee' >>>

Account 클래스 은행의 총 계좌 수 >>> kim.num_accounts 2 Account (class object) {‘num_accounts’:2} >>> kim.num_accounts 2 >>> Account.num_accounts >>> kim (instance) lee (instance) {‘name’:’kim’} {‘name’:’lee’} kim.num_account에서 먼저 인스턴스의 네임 스페이스에서 num_account를 찾았지만, 해당 이름이 없어서 클래스의 네임 스페이스로 이동한 후 다시 해당 이름을 찾았고 그 값이 리턴된 것을 아실 것입니다.

클래스 변수의 역할 여러 인스턴스 간에 서로 공유되어야 하는 값들은 클래스 변수를 통해 바인딩 파이썬은 인스턴스의 네임 스페이스에 없는 이름은 클래스의 네임 스페이스에서 찾아보기 때문에 이러한 특성을 이용하면 클래스의 변수가 모든 인스턴스에 공유될 수 있기 때문

클래스 상속 상속 객체 지향 프로그래밍에서는 클래스를 통한 상속 기능을 지원함 상속이란 사람이 사망함에 따라 사망자의 재산 및 신분상의 지위에 대한 포괄적인 승계를 의미 드라마에서 보면 부모님으로부터 많은 재산을 상속받은 사람들을 종종 볼 수 있지요? 객체 지향 프로그래밍에서는 클래스를 통한 상속 기능을 지원함 자식이 부모님으로부터 재산 등을 상속받는 것처럼 다른 클래스에 구현된 메소드나 속성값들을 상속받는 클래스에서 그대로 사용할 수 있음 클래스의 상속을 또 다른 관점에서 생각을 해보면 클래스를 상속한다는 것은 부모 클래스의 능력을 그대로 전달받는 것을 의미 인간으로 치면 부모로부터 유전형질을 물려받아 부모의 능력도 그대로 물려 받는 것과 비슷함

노래 잘 부르는 부모 클래스 노래 잘 부르는 부모 클래스 정의 인스턴스 생성 및 메서드 호출 >>> class Parent: def can_sing(self): print("Sing a song") >>> >>> father = Parent() >>> father.can_sing() Sing a song >>>

운이 좋은 자식 클래스 노래 잘 부르는 부모 클래스를 부모로 둔 자식 클래스 인스턴스 생성 자기 자신은 아무 능력이 없음 (pass keyword) 인스턴스 생성 >>> class LuckyChild(Parent): pass >>> >>> child1 = LuckyChild() >>> child1.can_sing() Sing a song >>>

운이 좋지 않은 자식 클래스 평범한 부모를 둔 자신 클래스 인스턴스 생성 자신은 역시 아무 능력이 없음 >>> class UnLuckyChild: pass >>> >>> child2 = UnLuckyChild() >>> child2.can_sing() Traceback (most recent call last): File "<pyshell#53>", line 1, in <module> child2.can_sing() AttributeError: 'UnLuckyChild' object has no attribute 'can_sing' >>>

운이 좋은 자식 클래스2 노래는 타고 났으나 춤은 스스로 노력해서… 춤과 노래 둘다 할 수 있어요! >>> class LuckyChild2(Parent): def can_dance(self): print("Shuffle Dance") >>> >>> child2 = LuckyChild2() >>> child2.can_sing() Sing a song >>> child2.can_dance() Shuffle Dance >>>

상속의 장점 물론 굳이 상속이라는 기능을 사용하지 않고도 부모 클래스에 구현된 메소드들을 그대로 복사하여 새로 정의할 클래스에 코드를 붙여넣기 해서 사용할 수도 있음 단, 이렇게 하게 되면 같은 기능을 하는 코드가 중복적으로 발생하기 때문에 코드를 관리하기가 어렵고 복사 및 붙여넣기를 해야 하므로 불편함 이에 반해 클래스의 상속이라는 기능을 사용하면 아주 쉽게 최소한의 코드로도 부모 클래스에 잘 구현된 메소드들을 바로 이용할 수 있음

연습 문제 문제-1

연습 문제 문제-2 문제-1의 코드에서 추가로 아래의 코드를 수행했을 때 ‘???’로 표시된 부분의 결괏값을 적어보세요.

연습 문제 문제-3 문제-1, 문제-2의 코드가 모두 수행된 후의 Stock 클래스, a 인스턴스, b 인스턴스의 네임스페이스를 그림으로 표현하세요.

연습 문제 문제-4 Car 클래스를 정의하세요. Property/Method Name Description Property maker 제조사 model 모델명 year 제조년 month 제조월 kilo 주행거리 Method increase_kilometer(kilo) 주행거리 증가

연습 문제 문제-5 이름(name), 학년 (grade), 전공 (major), 토익 점수 (toeic)의 속성을 갖는 Student 클래스를 정의하라. 메서드는 생성자(__init__), set_name, set_grade, set_major, set_toeic, get_name, get_grade, get_major, get_toeic이 있다. 임의의 객체를 생성한 후 데이터를 입력하고 출력하라.

연습 문제 풀이 문제-1

연습 문제 풀이 문제-2

연습 문제 풀이 문제-3

연습 문제 풀이 문제-4 class Car: def __init__(self, maker, model, year, month, kilo): self.maker = maker self.model = model self.year = year self.month = month self.kilo = kilo def increase_kilometer(self, kilo): self.kilo += kilo

연습 문제 풀이 문제-5 s1 = Student("Minsu Kim", 1, "computer eng.", 700) s2 = Student("Jua Park", 2, "Economics", 800) print(s1.get_name(), s1.get_major()) print(s2.get_name(), s2.get_major()) 연습 문제 풀이 문제-5 class Student: def __init__(self, name, grade, major, toeic): self.name = name self.grade = grade self.major = major self.toeic = toeic def set_name(self, name): def set_grade(self, grade): def set_major(self, major): def set_toeic(self, toeic): self.toeic = toeic def get_name(self): return self.name def get_grade(self): return self.grade def get_major(self): return self.major def get_toeic(self): return self.toeic