오식랜드
[python] class 본문
반응형
class
- class 선언
class 클래스명:
- class 호출 시 즉시 실행 함수 init(self)
class JSS:
def __init__(self): # class 호출 시 시작 함수 (__init__(self)는 고정)
print('JSS 클래스 선언')
# 변수에 class저장
CallJSS = JSS()
# class 호출
CallJSS
# 'JSS 클래스 선언' 출력
- class 내의 함수 호출
init함수 외의 다른 이름의 함수는 즉시실행이 안된다
클래스변수.함수이름 으로 호출 가능!
class JSS:
def __init__(self): # class 호출 시 시작 함수 (__init__(self)는 고정)
print('JSS 클래스 선언')
def later(self):
print('later 함수')
CallJSS = JSS()
CallJSS
# 'JSS 클래스 선언' 출력
CallJSS.later()
# 'later 함수' 출력
이제 class를 이용해 자기소개서 양식을 만들어줍니다.
self를 사용하면 class의 init함수에서 받은 정보를 그대로 쓸 수 있게 됩니다.
# 자기소개 클래스
class JSS:
def __init__(self):
print('자기소개서 class 실행')
self.name = input('이름 : ')
self.age = input('나이 : ')
def result(self):
print('내 이름은 {name}입니다. 나이는 {age}세 입니다.'.format(name = self.name, age = self.age))
# 변수에 class 저장
CallJSS = JSS()
#class 호출 -> 자동으로 init 함수 시작됨
CallJSS
#JSS의 result함수 시작됨
CallJSS.result()
class 상속
이전의 JSS클래스를 그대로 가져가고, 거기에 더 추가를 하고싶을 땐, 아래처럼 괄호 안에 넣어주면 된다
class JSS2(JSS):
def __init__(self):
print('JSS 클래스의 init함수는 사라지고, JSS2의 init 함수가 실행됨')
JSS2에서 init함수를 새로 선언하면 JSS의 init함수는 사라지고 JSS2의 함수로 덮어씌워진다.
만약 JSS를 변경 없이 그대로 쓸거라면 pass를 입력해주면 된다
class JSS2(JSS):
pass
JSS를 불러오되, 더 추가해서 작성하고 싶으면 super를 사용하여 괄호 안의 class를 불러올 수 있다
class JSS2(JSS): # JSS를 상속받음
def __init__(self):
super().__init__() # JSS의 init함수를 호출. super=괄호안의 클래스
self.gender = input('성별 : ') # 추가할 내용
# 변수에 클래스 담음
CallJSS2 = JSS2()
#JSS2 클래스 호출
CallJSS2
반응형
'dev-log > python' 카테고리의 다른 글
[python] package (0) | 2023.01.12 |
---|---|
[python] module (0) | 2023.01.12 |
[python] 파일 입출력 (0) | 2023.01.09 |
[python] 입출력 (0) | 2023.01.09 |
[python] 함수 (0) | 2023.01.09 |
Comments