728x90
학생을 지칭하는 새로운 형태를 하나 정의하고, 그 형태를 이루기 위한 요소를 정의
__init__ 함수: Student 클래스의 형태를 정의하는 생성자(Constructor)
- self를 항상 첫 번째 인자로 넣어주고, self는 학생을 지칭
- 인자로 넘어오는 kor, eng, math는 대입해 주는 식으로 코드를 작성, 멤버 변수
* 학생 정보를 저장하는 코드를 작성 가능하다.
- Student를 함수 호출하는 것처럼 사용
- __init__ 함수에 self 다음에 인자가 정의되어 있는 순서대로 값을 적어주게 되면, 각각의 값을 갖는 하나의 학생 객체(instance)를 만들 수 있다.
- 이 값들을 조회하기 위해 [객체이름.멤버변수이름] 형태로 확인할 수 있다.
* Python3에서 새로운 형태를 정의할 때 class를 만들지 않고 진행하는 방법
- 크게 복잡하지 않은 문제의 경우 class를 만들지 않고, tuple을 이용하여 문제를 해결한다.
* 튜플(immutable 하다.)
- 튜플에 들어있는 값은 수정할 수 없다.
- 튜플에 추가 원소를 넣거나 기존 원소를 제거하는 것은 불가능하다.
- 튜플 언패킹(Tuple Unpacking)
- a, b = (1, 2)
- 튜플 패킹(Tuple Packing)
- dt = 1, 2, 3, 4, 5 (리스트를 활용하지 않고 여러 값을 담으려고 하면 튜플 형식으로 묶여서 값을 저장함)
- 각 원소에 대해 unpacking 시 적절한 변수를 사용해서 의미 부여한 뒤 사용
student1 = (90, 80, 90)
kor, eng, math = student1
print(kor eng, math)
* 각 인자에 값이 넘어오지 않을 때 어떤 값을 취하게 할 것인지에 대해 설정
class Student:
def __init__(self, kor=0, eng=0, math=0):
* 객체에 이미 들어있는 값 변경 방법
객체이름.매개변수이름 = 바꿀 값
student1.kor = 80
* tuple을 통한 값 변경
- tuple에서는 class와 같이 기본값이라는 개념이 없다.
- 값이 정해지지 않은 경우, 초기값을 직접 넣어주며 생성해야함.
student1 = (0,0,0)
kor, eng, math = student1
>> tuple은 immutable 하므로 원소 값을 바꿀 수 없다.
>> 새로운 tuple을 생성해줘야 한다.
student1 = (kor, eng, 90) # 수학 점수만 90점으로 바꾼 예
- tuple unpacking 시 필요 없는 곳에는 _ 를 넣어 사용하지 않겠다는 의미 부여하는 것이 좋음
student1 = (90,80,90)
_,_,math = student1
print(math)
반응형
'🇱 Languages > Python' 카테고리의 다른 글
[Python] 데이터 검증과 구조화: dataclasses vs Pydantic (3) | 2024.12.18 |
---|---|
파이썬 기초 문법 1,2,3 (0) | 2024.07.18 |
[Python] 딕셔너리 자료형(추가, 삭제) (0) | 2024.03.27 |