대학교

데이터 구조 - (3) 파이썬 기초

매 석 2023. 10. 6. 14:53
반응형

불변 타입과 가변 타입

출처 : 쉽게 배우는 자료구조 with 파이썬

id를 확인해보면 정수의 경우 값이 바뀌게 된다.

이는 불변이기에 그 자리에서 값을 바꿀 수 없어 다른 자리에 복사해 바꾼다.

리스트는 그 자리의 내용을 바꿀 수 있어 id값이 변하지 않는다.

(불변 : 숫자, 문자열, 튜플 가변 : 리스트)

 

복사호출, 참조호출, 할당호출

출처 : 쉽게 배우는 자료구조 with 파이썬

(a), (b)의 경우는 복사호출로 값이 복사되어 파라미터로 전달되는 형태다.

(c), (d)의 경우는 참조호출로 그 값의 래퍼런스를 넘긴다.

그렇기에 결과적으로 단순 복사의 경우 x의 값이 5, 주소를 넘긴 경우 10의 결과가 나온다.

출처 : 쉽게 배우는 자료구조 with 파이썬

 

할당 호출의 경우 불변 타입이면 복사호출, 가변 타입이면 참조호출 방식을 택한다.

 

클래스

파이썬은 객체 지향 언어로, 객체를 만드는 수단을 클래스라 한다.

클래스는 생성자와 메서드로 구성된다.

클래스 안에서 정의된 함수를 메서드라 한다.

__init__() 메서드를 생성자라고 한다. 해당 클래스의 객체가

하나 만들어질 때 자동으로 수행되어 객체를 초기화한다.

출처 : 쉽게 배우는 자료구조 with 파이썬

아래 클래스에는 전역변수와 지역변수가 존재한다.

counter2의 경우는 해당 클래스의 모든 클래스 중 하나만 존재하고,

self는 각 객체마다 하나씩 존재한다.

그렇기에 다른 객체로 같은 값을 2번 numEven()메서드를 실행한다면

counter값의 2배가 counter2값이 된다.

출처 : 쉽게 배우는 자료구조 with 파이썬

클래스의 메서드의 이름이 __로 시작하는 것은 비공개 메서드이다.

이는 클래스 내부에서는 동작하지만, 외부에서 접근 시 에러를 발생한다.

출처 : 쉽게 배우는 자료구조 with 파이썬

추가로 if __name__ =="test"라는 내용이 있으면

test.py에서 해당 클래스를 실행했을 때 if절 아래 코드를 실행한다.

마찬가지로 __name__=="__main__"이라면 해당 파일에서

직접 수행한 경우를 의미한다.