파이썬(python) 강의 메모 및 실습

파이썬 클래스와 메서드

인공지능파이썬 2024. 12. 1. 20:29

1. 클래스와 메서드

# 클래스와 메서드
# 
class Person():
    # name = ""
    def __init__(self, input_name, age=0, gender=None) -> None:
        # 이름, 나이, 성별
        print(input_name)
        self.name = input_name
        self.age = age
        self.gender = gender
        self.print_infos()
        # return 0    #되돌려 줄 값(주소값)이 정해져 있기 때문에
        # 초기화 메서드(__init__)는 return을 반드시 None으로 해주어야한다.
        

    def print_infos(self):
        print(self.name, self.age, self.gender)


if __name__ == "__main__":
    # 객체화
    # 클래스라는 개념을 실체화한(구체화한)
    # 대상을 만드는 것이다.
    hong = Person("honggildong", gender="남")
    kim = Person("kimC",30, "여")

    # print(hong.name)
    # print(kim.name)

    # print(hong)
    # print(kim)
    
    
-->
#honggildong
#honggildong 0 남
#kimC
#kimC 30 여

 
1-1) 클래스와 메서드

# 클래스와 메서드
# 
class Person():
    # name = ""
    def __init__(self, input_name, age=0, gender=None) -> None:
        # 이름, 나이, 성별
        print(input_name)  
        self.name = input_name
        self.age = age
        self.gender = gender
        self.print_infos()
        # return 0    #되돌려 줄 값(주소값)이 정해져 있기 때문에
        # 초기화 메서드(__init__)는 return을 반드시 None으로 해주어야한다.
        

    def print_infos(self):
        print(self.name, self.age, self.gender)



if __name__ == "__main__":
    # 객체화
    # 클래스라는 개념을 실체화한(구체화한)
    # 대상을 만드는 것이다.
    hong = Person("honggildong", gender="남")
    kim = Person("kimC",30, "여")


    # print(hong.name)
    # print(kim.name)

    # print(hong)
    # print(kim)

-->
#honggildong
#honggildong 0 남
#kimC
#kimC 30 여

 
1-2)학생 클래스 만들어서 수학점수 출력

# 학생 클래스를 만들어서
class Student():
    # 수학점수, 영어점수, 국어점수를 입력받아
    math = 80
    eng = 70
    kor = 85
    def __init__(self, math, eng, kor) -> None:
        # 각각 math, eng, kor 변수에 담아서
        self.math = math
        self.eng = eng
        self.kor = kor

    def get_math(self) -> None:
        return self.math

    def set_math(self, math):
        self.math = math
        return


# 객체를 생성하면서 수학점수, 영어점수, 국어점수를 입력받아
# 외부에서 접근하여 출력해보자.
if __name__ == "__main__":
    # 객체 생성 kim
    kim = Student(math=80, eng=85, kor=70)
    # 객체에 접근하여 math 점수 출력
    print(kim.math)
    print(kim.get_math())

    #객체에 접근하여 메서드 사용하기
    kim.set_math(100)
    print(kim.get_math())   #100
 
 -->
#80
#80
#100

 
1-3) import 해오기

# import class_task
# import 
# import는 현재 작성중인 파일과
# 같은 폴더 내에 있는 다른 파일(모듈)을 가져오는 방법이다.
# 이때, 해당 파일(모듈) 전체가 아니라
# 그 모듈 내의 요소(함수, 클래스, 변수, 상수)만
# 들고 오고 싶다면,
from class_task import Student as St1
# from 에 모듈명을 적고
# import에 가져오고자 하는 요소를 적어서
# 가져올 수 있다.
from class_basic import Student as St2
# 만약 가져온 요소의 이름을
# 다른 이름으로 부르고 싶다면
# as를 사용하여 별칭을 부여할 수 있다.


if __name__ == "__main__":
    kim2 = St1(80, 80, 80)
    print(kim2.get_math())

 
1-4) 함수 예시

# 함수
# 외부에서 매개변수에 담을 값을 전달받아
# 매개변수로 처리할 로직을 작성해놓은 
# 추상적인 기능 블록을 의미한다.
def add_nums(num1, num2):
    return num1 + num2

print(add_nums(num1=3, num2=5))

# 두 개의 숫자와 연산자를 문자열로 입력받아
# 문자열 연산자에 따라 결과값을 다르게 return하는 함수 만들기
def calculator(num1, num2, oper):
    # oper -> "+", "-", "*", "/"
    answer = 0
    # oper의 값이 "+"이면
    if oper == "+":
        # answer에 num1과 num2를 더한 값을 저장한다.
        answer = num1 + num2
    # elif? 동시에 일어나진 않네?
    # oper의 값이 "-"이면
    elif oper == "-":
        # answer에 num1에서 num2를 뺀 값을 저장한다.
        answer = num1 - num2
    
    # 위의 과정을 거쳐서 저장된 answer의 값을
    # 외부로 돌려준다.
    return answer

print(calculator(3, 5, "+") == 8)
print(calculator(5, 3, "-") == 2)
print(calculator(3, 5, "*") == 15)
print(calculator(10, 2, "/") == 5)
-->
#8
#True
#True
#False
#False

 
1-5) 리스트 컴프리헨션

#리스트 커프리헨션(comprehension)
# 대괄호에 for 문 내용을 한 줄로 압축해서
# 그 결과 나오는 값들을 요소로 하는
# 새로운 리스트를 만드는 문법
new_list = [e for e in range(10)]
# 0부터 9까지의 숫자 값들을 요소로 하는 새로운 리스트 생성
print(new_list)
new_list1 = [e+1 for e in range(10)]
print(new_list1)


# 반복할 수 있는 객체(iterable object)의 요소에
# 반복적인 작업을 간단하게 할때 사용하기도 한다.
[print(e*10) for e in new_list]
# for e in new_list
#     print(e)      형태와 같다

# 리스트 컴프리헨션 with if
# 리스트 컴프 뒤에 if 문을 붙여서
# 조건을 만족하는 요소에 대해서만
# 반복작업을 수행할 수 있다.
even_list = [e for e in range(100) if e % 2 == 0]
print(even_list)

-->
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#0
#10
#20
#30
#40
#50
#60
#70
#80
#90
#[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]
728x90
LIST

'파이썬(python) 강의 메모 및 실습' 카테고리의 다른 글

파이썬 -상속 및 함수  (0) 2024.12.01
파이썬-함수  (0) 2024.12.01
파이썬 반복문과 리스트  (0) 2024.12.01
파이썬 제어문_조건문  (0) 2024.12.01
파이썬 형변환  (0) 2024.12.01