Python(9)
-
OOP 2
상속 클래스 간에 상하관계가 형성됨. 기존 메서드를 하위 클래스에 그대로 물려줌. 상속이 필요한 이유 → 코드의 재사용 + 클래스 간에 계층구조를 형성하고 클래스 간 관계를 표현할 수 있음. 유지보수 입장에서도 클래스 수정의 범위를 최소화할 수 있어서 효율적이다. super() 다중 상속 둘 이상의 상위 클래스로부터 여러 행동이나 특징을 상속받을 수 있다. 일반 상속처럼 상속받은 모든 것을 활용할 수 있다. 중복된 속성이나 메서드가 있는 경우 상속 순서에 의해 결정된다. 다이아몬드 문제 둘 이상 클래스에서 상속을 받을 때 중복되는 속성, 행동을 어디서 받을 것인가? → MRO 알고리즘을 사용하여 깊이 우선으로, 왼쪽에서 오른쪽으로 가면서 먼저 상속받은 클래스 기준을 정하고 동시에 그 순서로 클래스를 참조..
2024.02.01 -
OOP 1
객체 지향 프로그래밍 cf) 절차 지향 프로그래밍 → 프로그램을 ‘데이터’와 ‘절차’로 구성하는 프로그래밍 패러다임. 절차 = 순서가 중요함! 프로그램마다 정해진 절차가 중요. 데이터와 함수(절차)가 분리되어 있음. 함수 호출 흐름이 중요. 코드의 순차적인 흐름과 함수가 프로그램을 진행한다. 프로그램 초창기에는 절차 지향 프로그래밍을 많이 썼다고 함. 소프트웨어의 위기 → 하드웨어가 크게 발전했는데 이를 소프트웨어가 못 따라감. 절차가 강조되다보니 데이터를 중간에 재사용하지도 못하고 중간에 함수 하나가 오류나면 전체가 다 망가짐. 그래서 객체 지향 프로그래밍이 등장. 데이터와 해당 데이터를 조작하는 메서드를 하나의 객체로 묶어버림! 엥? 절차 지향에서는 데이터와 함수를 별개로 보았는데?!! 그리고 데이터..
2024.02.01 -
데이터 구조 2
오늘은 비시퀀스 데이터 구조를 배워보자. set 보단 딕셔너리를 위주로 볼 것 비시퀀스 데이터 구조 순서가 존재하지 않아서 인덱스로 접근이 불가능 set 순서도 없고 (정렬되지 않음) 요소가 중복되지 않음. (고유한 항목들) 빈 set 는 set() 로 나타낸다. {}는 빈 딕셔너리로 인식함! 파이썬에서 is로 시작하는 연산은 보통 T/F 를 판별한다. ex) issubset() , issuperset() 딕셔너리 고유한 항목들(중복x), 정렬되지 않은 컬렉션, key : value 형식 .get(key[,default]) → 배커스-나우르 표기법에서 [ ] = 선택 인자, 앞에 key는 필수로 들어가야 한다. 키가 있을 때 : print(person[’name’]) = print(person.get(’..
2024.02.01 -
데이터 구조 1
오늘은 데이터 타입으로 할 수 있는 행동들을 볼 것. 메서드 함수인데, 객체에 속한 함수이다. 그동안 봤던 함수들은 단독적으로 존재하는 함수였으나 메서드는 어딘가에 속해있다. class에 속해있는데, 우리가 은연중에 봐왔던 타입이다. print(type(’1’)) 을 하면 class가 뜨고 그 이후에 str 이 뜬다. 계속 봤던 글자이다. 기능상 특별한 것도 없고 메서드와 함수는 같은 건데, 위치가 다르다! 개체에 속한 함수들은 데이터 타입의 객체가 호출을 하게 된다. 함수() → 함수 호출 객체.메서드() → 메서드 호출 객체의 데이터 타입에 따라 정의된 메서드, 즉 함수들이 달라서 호출할 수 있는 함수도 다르다! 시퀀스 데이터 구조 다음에는 비 시퀀스 데이터 구조를 보고 오늘은 시퀀스를 보자! is가..
2024.01.31 -
함수와 제어문 2
모듈 변수와 함수가 작성되어있는 하나의 파이썬 파일로서 특정한 기능을 수행함. ex) 파이썬 내부에 math.py 라는 math 모듈이 있음. 다만 import 해서 가져와야 쓸 수 있다. help(math)를 사용해서 모듈 안에 무엇이 들어있는지 확인할 수 있다. 모듈 사용하기 ‘ . (dot) ‘ → 점의 왼쪽 객체에서 점의 오른쪽 이름을 찾아라 라는 의미의 연산자 ex) print(math.pi) , print(math.sqrt(4)) 모듈을 import 하는 다른 방법 from 으로 특정 모듈을 미리 참조해서 쓸 요소만 가져올 수도 있다. 이렇게 가져오면 코드 표기가 달라진다. 그러나 모듈명이 다 들어가는 위쪽 표기법이 더 명시성이 있어서 권장된다. 만약 서로 다른 모듈이 같은 이름의 함수를 제공..
2024.01.31 -
함수와 제어문 1
함수 특정 작업을 수행하기 위한 재사용 가능한 코드 묶음 함수를 사용하는 이유 코드를 그때 그때 다 입력하고 쓰면 비효율적이니까 특정한 목적의 함수를 만들어두고 필요할 때마다 씀으로써 코드의 재사용성, 가독성과 유지보수성 향상 내장 함수 파이썬이 기본적으로 제공하는 함수 (별도의 import 없이 바로 사용 가능) ex) print() , abs() 원래 외부의 함수 가져오려면 설치하거나 명령해야함. 함수 호출 함수 실행을 위해 함수 이름을 사용하여 해당 함수의 코드 블록을 실행하는 것 ( 함수 호출 시에는 반드시 소괄호를 열고 닫아야 함! ) 함수 구조 매개변수 = 파라미터 = input function body 도큐먼트 스트링 = Docstring → 주석 기능뿐 아니라 함수에서 사용법을 설명해주는 ..
2024.01.31