[유튜브] #1 클래스

2022. 9. 20. 23:24스파르타코딩클럽[AI트랙 3기]/파이썬(인강, 원격강의)

*유튜브

박대리 회사 채용 공고

박대리의 업무: 지원자 데이터 저장

지원자별로 카테고리를 다르게 제출(이름, 나이, 주소, 종교)

원래 정보를 name_1, name_2 같은 식으로 저장했는데 클래스를 쓰면 a.name, b.name 과 같이 앞으로감. a,b,c라는 클래스에 이름과 나이가 자동으로 저장됨.

name_1 = “a” / name_2 = “b” /name_3 = “c”

age_1 = 30 / age_1 = 8 / age_1 = 10

이렇게 6개는 전혀 연관성 없는 그냥 변수 6

하지만 jss라는 클래스를 만들고 그 안에 a=jss() / b=jss() /c=jss()라고 클래스를 만들고 각각

a=jss() -> a.name = “a”, a.age= 30 / b=jss() -> b.name = “b”, b.age= 8/

c=jss() -> c.name = “c”, a.age= 10 이 각각 저장됨.

방법은

class JSS():

def __ init __(self): #클래스를 선언하는 순간 실행되는 함수

self.name=input(“이름:”)

self.age=input(“나이:”)

 

a=JSS() #라고 하면 선언과 동시에 init 함수안의 내용 실행

예제)

class JSS:

def __init__(self):

print(“ JSS 클래스 선언!”)

 

a=JSS() #JSS 클래스 선언! 그대로 나옴.

만약 다른 함수가 init 밑에 추가되면

def show(self):

print(“show 실행!”) #하면 출력안됨. 출력하고 싶으면 a.show()해줘야함. init함수가 아니라면 클래스 변수 뒤에 .함수 해줘야 실행.

 

*self

calss JSS:

def show(self):

a라는 변수에 JSS() 클래스를 할당했을 때 a.show()형태로 쓰겠다는 것임. 대신에 괄호안에는 아무것도 없는 것. 클래스를 선언할 때 쓴 selfa에 해당하기 때문에 실제 a.show()를 쓸때는 괄호안이 비게됨. 마찬가지로 클래스를 선언한 a.name, a.age형태로 쓸 수 있음.

def __init__(self):

self.name = input(“이름을 입력하세요:”)

self.age = input(“나이를 입력하세요:”)

def show(self):

print(이름: {name}, 나이 :{age})