"파이썬 입문"의 두 판 사이의 차이
DB CAFE
(→클래스) |
|||
319번째 줄: | 319번째 줄: | ||
** Method: 클래스에 선언된 호출 가능한 속성 , a “callable attribute” defined in the class | ** Method: 클래스에 선언된 호출 가능한 속성 , a “callable attribute” defined in the class | ||
+ | === 클래스 이해를 위한 6가지 포인트 === | ||
+ | 1. 클래스의 인스턴스는 클래스가 무엇인지 알고 있습니다. | ||
+ | 2. 클래스에 정의 된 변수는 인스턴스로 할당하여 사용. | ||
+ | 3. 인스턴스 메소드는 첫번째 인수로 self 인스턴스를 전달(메소드에서 이름이 self 임). | ||
+ | 4. 인스턴스에는 인스턴스 속성이라는 자체 데이터가 있음. | ||
+ | 5. 클래스에 정의 된 변수를 클래스 속성이라고합니다 | ||
+ | 6. 속성을 읽을 때 파이썬은 인스턴스에서 먼저 속성을 찾은 다음 클래스에서 찾습니다. | ||
+ | |||
+ | === 인스턴스 메소드 === | ||
+ | <source lang=python> | ||
+ | class Joe: | ||
+ | def callme(self): | ||
+ | print(“calling ‘callme’ method with instance”) | ||
+ | |||
+ | thisjoe = Joe() #인스턴스 할당 | ||
+ | thisjoe.callme() #메소스 호출 | ||
+ | </source> | ||
+ | |||
+ | === 클래스 정의 === | ||
+ | <source lang=python> | ||
+ | class BusinessCard: | ||
+ | def __init__(self, name, email): | ||
+ | self.name = name | ||
+ | self.email = email | ||
+ | |||
+ | def print_info(self): | ||
+ | print(self.name) | ||
+ | print(self.email) | ||
+ | # instantiation and call the method | ||
+ | mem1 = BusinessCard(“Goo”, “goo@gmail.com”) | ||
+ | mem1.print_info() | ||
+ | </source> | ||
+ | |||
+ | === 클래스 상속 === | ||
+ | * Class – Inheritance | ||
+ | <source lang=python> | ||
+ | >>> class Parent: | ||
+ | def can_sing(self): | ||
+ | print(“sing a song”) | ||
+ | |||
+ | >>> father = Parent() | ||
+ | >>> father.can_sing() | ||
+ | sing a song | ||
+ | |||
+ | |||
+ | >>> class LuckyChild(Parent): | ||
+ | pass | ||
+ | |||
+ | >>> child1 = LuckyChild() | ||
+ | >>> child1.can_sing() | ||
+ | sing a song | ||
+ | |||
+ | >>> class LuckyChild2(Parent): | ||
+ | def can_dance(self): | ||
+ | print(“dance beautifully”) | ||
+ | |||
+ | >>> child2 = LuckyChild2() | ||
+ | >>> child2.can_sing() | ||
+ | sing a song | ||
+ | >>> child2.can_dance() | ||
+ | dance beautifully | ||
+ | </source> | ||
+ | |||
+ | === 클래스 상속2 == | ||
+ | * Class – Inheritance II | ||
+ | |||
+ | <source lang=python> | ||
+ | >>> class Parent: | ||
+ | def __init__(self): | ||
+ | self.money = 10000 | ||
+ | |||
+ | >>> class Child1(Parent): | ||
+ | def __init__(self): | ||
+ | super().__init__() | ||
+ | |||
+ | >>> class Child2(Parent): | ||
+ | def __init__(self): | ||
+ | pass | ||
+ | |||
+ | >>> child1 = Child1() | ||
+ | >>> child2 = Child2() | ||
+ | >>> print(child1.money) | ||
+ | 10000 | ||
+ | >>> print(child2.money) | ||
+ | AttributeError: 'Child2' object has no attribute 'money' | ||
+ | </source> | ||
[[Category:python]] | [[Category:python]] |
2020년 4월 10일 (금) 14:21 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 데이터 타입[편집]
# int
>>> a = 3
>>> type(a)
int
- float
- str
- bool
- complex
>>> c = 3 + 4j
>>> type(c)
complex
2 데이터 구조체[편집]
2.1 리스트[편집]
2.1.1 생성[편집]
>>> names = [ ]
>>> names = [‘a’, ‘b’, ‘c’, ‘d, ‘e’]
2.1.2 len(s)[편집]
>>> names = [‘a’, ‘b’, ‘c’, ‘d, ‘e’]
>>> len(names)
5
2.1.3 indexing[편집]
>>> names = [‘a’, ‘b’, ‘c’, ‘d, ‘e’]
>>> names[0]
‘a’
>>> names[1]
‘b’
2.1.4 append[편집]
>>> names = [‘a’, ‘b’,’c’]
>>> names.append(‘d’)
>>> names
[‘a’, ‘b’, ‘c’, ‘d’]
2.1.5 insert[편집]
>>> names = [‘a’, ‘b’, ‘c’]
>>> names.insert(1, ‘e’)
>>> names
[‘a’, ‘e’, ‘b’, ‘c’]
2.1.6 comprehension[편집]
- 컴프리핸션: 리스트를 한줄의 코드로 쉽게 만들때 사용
>>> data = [3, 4, 5]
>>> float_data = [float(d) for d in data]
2.2 튜플[편집]
2.2.1 생성[편집]
>>> names = (‘a’, ‘b’, ‘c’, ‘d, ‘e’)
2.2.2 len(s)[편집]
>>> names = (‘a’, ‘b’, ‘c’, ‘d, ‘e’)
>>> len(names)
5
2.2.3 indexing[편집]
>>> names = (‘a’, ‘b’, ‘c’, ‘d, ‘e’)
>>> names[0]
‘a’
>>> names[1]
‘b’
2.3 딕셔너리[편집]
2.3.1 생성[편집]
>>> cur_price = { }
2.3.2 insert[편집]
>>> cur_price[‘samsung’] = 10000
>>> cur_price
{‘samsung’: 10000}
2.3.3 indexing[편집]
>>> cur_price[‘samsung’]
>>> 10000
2.3.4 delete[편집]
>>> del cur_price[‘samsung’]
>>> cur_price{}
2.3.5 key, value[편집]
>>> cur_price.keys()
dict_keys([‘samsung’])
>>> cur_price.values()
dict_values([10000])
3 문자열 조작 함수[편집]
3.2 indexing[편집]
>>> mystring[0]
‘h’
3.3 slicing[편집]
>>> mystring[0:5]
‘hello’
>>> mystring[6:]
‘world’
3.4 문자열.split(S)[편집]
>>> companies = “yahoo google”
>>> companies.split(‘ ’)
[‘yahoo’, ‘google’]
3.5 in[편집]
>>> ‘google’ in companies
True
3.6 combining[편집]
>>> s1 = “hello”
>>> s2 = “world”
>>> s3 = s1 + ‘ ’ + s2
>>> s3
“hello world”
3.7 replace[편집]
>>> a = “yahoo;google”
>>> new_a = a.replace(‘;’, ‘-’)
>>> new_a
“yahoo-google”
3.8 index[편집]
>>> s = “yahoo google”
>>> s.index(“google”)
6
3.9 문자열.find(x)[편집]
>>> s = “yahoo google”
>>> s.find(“google”)
6
3.10 stripping[편집]
>>> a = “ yahoo ”
>>> new_a = a.strip()
>>> new_a
“yahoo”
4 파이썬 제어문[편집]
4.1 조건별 분기[편집]
if ending_price > 10000:
print(“sell”)
elif ending_price < 8000:
print(“buy”)
else:
print(“hold”)
4.2 반복 처리[편집]
- Loop – For
>>> for i in range(0, 5):
print(i)
0
1
2
3
4
>>> for i in range(0, 5):
if i % 2 == 0:
print(i, end=‘ ’)
0, 2, 4
>>> buy_list = [‘000660’, ‘039490’]
>>> for code in buy_list:
print(“buy”, code)
buy 000660
buy 039490
>>> hold_list = {‘naver’: 10, ‘samsung’: 20}
>>> for company, num in hold_list.items():
print(company, num)
naver 10
samsung 20
4.3 Loop - While[편집]
>>> i = 0
>>> while i < 5:
print(i)
i += 1
0
1
2
3
4
>>> i = 0
>>> while i < 5:
if i % 2 == 0:
print(i)
i += 1
0 2 4
5 파이썬 모듈 임포트 방법[편집]
- 일반적인 import 방식
import os
- 필요 함수만 import 하는 방식
from os import xxx
- 모든 함수를 import 하는 방식
from os import *
7 함수[편집]
>>> def cal_upper_price(price):
increment = price * 0.3
upper_price = price + increment
return upper_price
>>> upper_price = cal_upper_price(10000)
>>> upper_price
13000
8 모듈[편집]
# stock.py
def cal_upper_price(price):
increment = price * 0.3
upper_price = price + increment
return upper_price
- stock.py 모듈 import
# test.py
import stock
upper_price = stock.cal_upper_price(10000)
- stock.py 모듈 import
# test.py
from stock import *
upper_price = upper_price(10000)
9 클래스[편집]
- 클래스 정의(Class Definitions)
- Class: 인스턴스의 청사진 , a blueprint for an instance (“instance factories”)
- Instance: 클래스의 생성된 객체 , a constructed object of the class
- Type: 인스턴스가 속한 (타입별)클래스를 가르킴 , indicates the class the instances belong to
- Attribute: 모든 객체 값 ,any object value: object.attribute
- Method: 클래스에 선언된 호출 가능한 속성 , a “callable attribute” defined in the class
9.1 클래스 이해를 위한 6가지 포인트[편집]
1. 클래스의 인스턴스는 클래스가 무엇인지 알고 있습니다. 2. 클래스에 정의 된 변수는 인스턴스로 할당하여 사용. 3. 인스턴스 메소드는 첫번째 인수로 self 인스턴스를 전달(메소드에서 이름이 self 임). 4. 인스턴스에는 인스턴스 속성이라는 자체 데이터가 있음. 5. 클래스에 정의 된 변수를 클래스 속성이라고합니다 6. 속성을 읽을 때 파이썬은 인스턴스에서 먼저 속성을 찾은 다음 클래스에서 찾습니다.
9.2 인스턴스 메소드[편집]
class Joe:
def callme(self):
print(“calling ‘callme’ method with instance”)
thisjoe = Joe() #인스턴스 할당
thisjoe.callme() #메소스 호출
9.3 클래스 정의[편집]
class BusinessCard:
def __init__(self, name, email):
self.name = name
self.email = email
def print_info(self):
print(self.name)
print(self.email)
# instantiation and call the method
mem1 = BusinessCard(“Goo”, “goo@gmail.com”)
mem1.print_info()
9.4 클래스 상속[편집]
- Class – Inheritance
>>> class Parent:
def can_sing(self):
print(“sing a song”)
>>> father = Parent()
>>> father.can_sing()
sing a song
>>> class LuckyChild(Parent):
pass
>>> child1 = LuckyChild()
>>> child1.can_sing()
sing a song
>>> class LuckyChild2(Parent):
def can_dance(self):
print(“dance beautifully”)
>>> child2 = LuckyChild2()
>>> child2.can_sing()
sing a song
>>> child2.can_dance()
dance beautifully
10 = 클래스 상속2[편집]
- Class – Inheritance II
>>> class Parent:
def __init__(self):
self.money = 10000
>>> class Child1(Parent):
def __init__(self):
super().__init__()
>>> class Child2(Parent):
def __init__(self):
pass
>>> child1 = Child1()
>>> child2 = Child2()
>>> print(child1.money)
10000
>>> print(child2.money)
AttributeError: 'Child2' object has no attribute 'money'