[패스트캠퍼스python] Hint과 클래스 기초
파이썬 인강 : Hint과 클래스 기초
1. Hint
데이터타입을 명시적으로 알려주는 역할을 한다
위의 사진에서와 같이 x : int의 의미는 x는 int형만 와야한다는 의미이고
-> list: 는 리스트형태로 출력될 것이다라는 의미이다.
패키지를 통해 해당 함수를 다른 파일로 빼놓을때 유용하게 사용할 수 있다.
1 | def tot_length1(word: str, num: int) -> int: |
2. 람다식 예제
람다식의 장점은 메모리 절약, 가독성 향상, 코드 간결해진다
함수와 람다의 차이점은
- 함수는 객체 생성 -> 리소스(메모리) 할당
- 람다는 즉시 실행 함수(Heap 초기화) -> 메모리 초기화
즉 함수도 객체이기때문에 메모리에 할당되는 반면에 람다는 즉시실행함수여서 메모리를 효율적으로 사용할 수 있다.
람다식을 남발하는 경우에는 가독성이 떨어지므로 실무에서는 주로 익명함수를 사용할때 람다식을 쓴다.
- 일반적 함수 -> 변수 할당
위의 이미지는 우리가 일반적인 함수를 변수에 할당하는 방법이다
var_func이란 변수에 우리가 만든 def를 대입하면 터미널에서 볼수있듯이 메모리에 할당되어있고 type은 function이다.
1 | print() |
- 람다 함수 -> 할당
위의 일반함수식과 비교하면
1 | print() |
동일한 결과값이 출력되는 것을 확인할수있다.
좀 더 나아가 활용할 수 있는 방법이 있다
함수를 매개변수로 받는 방법이다
위에서 만들었던 lambda_mul_func
를 이용한 함수를 만들었다.
1 | print() |
만들어놓은 람다함수 사용하지않고 즉시 람다식을 넣어서 인자로 함수를 넘길 수 있다
None은 더이상 출력할 값이 없어서 출력되는 것임.
1 | print(func_final(10,10, lambda x : x * 10)) |
3. 클래스선언
먼저 클래스를 사용해야 할 이유에 대해 알아보자
방대한 어플리케이션이 운영하기 위해서는 클래스방식의 코딩을 해서 구조화를 시키고 결합을 느슨하게 해서 유지보수에 용이하게 한다.
클래스선언시 첫글자는 대문자여야한다.
클래스는 속성과 매서드로 구분된다.
클래스(객체), 인스턴스 차이는 매우 중요하디
- 네임스페이스 : 객체를 인스턴스화 할 때 저장된 공간
- 클래스 변수 : 직접 사용 가능, 객체보다 먼저 생성
- 인스턴스 변수 : 객체마다 별도로 존재, 인스턴스 생성 후 사용
아래는 클래스를 인스턴스 변수로 사용한 예이다.
1 | class UserInfo: |