Class에서 SQLite 사용하기
# sqlite3 임포트
import sqlite3
# 클래스 생성
class Health:
def __init__(self,arg1,arg2,arg3,arg4):
self.name = arg1
self.age = arg2
self.height = arg3
self.weight = arg4
def print_info(self):
print("이름:",self.name)
print("나이:",self.age)
print("키:",self.height)
print("몸무게:",self.weight)
# sqlite 사용하기
def input(self):
self.conn = sqlite3.connect("C:/data/health.db")
self.c = self.conn.cursor()
self.c.execute("select name from sqlite_master where name = 'health'")
if self.c.fetchone() is None:
self.c.execute("create table health(name text, age text, height text, weight text)")
self.c.execute("insert into health(name,age,height,weight) values(?,?,?,?)",
(self.name,self.age,self.height,self.weight)) # ?는 위치표기
self.c.execute("select * from health")
print(self.c.fetchall())
def commit(self):
self.conn.commit()
def rollback(self):
self.conn.rollback()
def close(self):
self.c.close()
self.conn.close()
# 출력
def set_health():
arg1 = input("이름을 입력하세요:")
arg2 = input("나이를 입력하세요:")
arg3 = input("키를 입력하세요:")
arg4 = input("몸무게를 입력하세요:")
con1 = Health(arg1,arg2,arg3,arg4)
con1.print_info()
con1.input()
con1.commit()
con1.close()
set_health()
변수와 상수
1) 변수 사용
class Person : hobby = "여행" def __init__(self,name): self.name = name def myPrint(self): print("{}의 취미는 {}이다.".format(self.name,self.hobby)) |
|
p1 = Person("해피밀") |
|
p1.hobby = "영화감상" |
|
p2 = Person("샌님") |
|
Person.hobby = "게임" |
|
# 인스턴스를 통해서 변수를 바꿔놓은건 안바뀐다. p1.myPrint() |
|
# 클래스를 통해서 변수를 바꿔놓았기 때문에 바뀐다. p2.myPrint() |
|
p3 = Person("쭈꾸미") |
|
p2.hobby = "요리" |
2) 상수 사용
class Person : |
|
p1 = Person("해피밀") |
|
p1.__hobby = "영화감상" |
|
p2 = Person("샌님") |
|
p2.__hobby = "게임" |
|
Person.__hobby = "게임" Person.__hobby |
|
p3 = Person("쭈꾸미") |
|
p2.myPrint() |
상속
- 메소드의 속성을 물려 받는다.
- 공통된 내용을 하나로 묶어서 관리할 수 있다.
class Parents: |
|
p = Parents("해피밀","010-1234-5678") |
|
class Child: |
|
# self,name,pn을 상속받겠다. |
|
# 부모 메소드 상속/클래스이름.메소드 |
|
c = Child("샌님","010-1111-2222","서울시","010101-1234567") |
|
class Person : |
|
p = Person("해피밀","27","무직") |
|
class Child(Person): |
|
c = Child("샌님","29","무직","서울","12월 8일") |
다중상속
class Add: def add(self,x,y): return x+y
class Multiply: def multiply(self,x,y): return x*y
class Divide: def divide(self,x,y): return x/y
# 다중상속 class Calculator(Add, Multiply, Divide): def sub(self,x,y): return x-y |
|
cal = Calculator() cal.add(10,20) cal.multiply(10,20 cal.divide(10,2) cal.sub(10,8) |
|
# 인스턴스를 통해서 호출하기 class Calculator: def add(self,x,y): return x+y def sub(self,x,y): return x-y def multiply(self,x,y): return x*y def divide(self,x,y): return x/y |
|
c = Calculator() |
|
# 클래스를 통해서 호출하기 class Calculator: @staticmethod def add(x,y): return x+y @staticmethod def sub(x,y): return x-y @staticmethod def multiply(x,y): return x*y @staticmethod def divide(self,x,y): return x/y |
|
Calculator.add(10,20) |
'컴퓨터 > 파이썬' 카테고리의 다른 글
파이썬 - Numpy (0) | 2020.05.07 |
---|---|
파이썬(Python) - Class ① (0) | 2020.04.06 |
파이썬(Python) - 스크래핑 ④ selenium을 이용한 크롤링 (0) | 2020.04.05 |
파이썬(Python) - 크롤링 연습 ② 국민 청원 청원 목록 수집(추천순) (2) | 2020.04.03 |
파이썬(Python) - 한글 형태소 분석 (0) | 2020.04.02 |