[Python] contextmanager와 with 관계
·
Python
보통 파이썬에서 파일을 열어 읽고 쓰고 수정하는 일들을 할 때 with문법을 사용한다with문법을 사용하지 않고도 파일을 열람할 수 있지만, 왜 with를 굳이 사용할까?with?with는 파일 열람의 기능만 하는 것이 아닌 문법 안에서 예외가 일어났을 때 파일에 의한 리소스누출을 막아주는 역할을 해준다f = open("a.txt", "r")data = f.read()f.close()이 코드는 with를 사용하지 않고 a.txt를 읽는 목적으로 파일을 연다data에 파일 내용을 저장하고 열었던 파일을 다시 닫는다 with는?with open("a.txt", "r") as f: data = f.read()위의 코드와 똑같은 내용이다 하지만 with를 사용할 때 open객체 안에 있는 enter, ex..
[Python] 함수 어노테이션?
·
Python
def function(x: int) -> int: ... GPT에게 코드를 작업시킬때나 인터넷에 떠돌아다니는 함수 코드들을 보면 함수에 이상한 자료형을 표시해놓는다. 뭔가 있어보이는데,, 생긴거만 보면 코드에 직접적인 영향을 줄 수 있을만한 요소라고 생각할 수 있다. 함수 어노테이션반환 타입 힌트 ( return type hint ) 라고도 말한다. 말 그대로 함수가 어떤 자료형을 반환하는지 힌트만 주는 문법이다. 코드에 직접적인 영향을 주지 않고, 오직 개발자가 보고 해석하기 편하게 참고용으로만 적는 거라고 한다. 파이썬 기본 자료형 말고도 라이브러리를 통해 더 많은 자료형 표현이 가능하다고 한다 typing 라이브러리from typing import List, Dict, Optional .....
[Python] uv
·
Python
파이썬에는 가상환경을 설정할 수 있는 방법들이 있다.대표적으로 알려진 건 Venv, Conda 두개지만venv는 너무 가벼워서 충돌이 많이 나고,Conda는 너무 무거워서 들고다니기 어렵지만 안정적이기 때문에 보통 Conda를 선호하지만uv라는 가상환경 툴이 나왔다.uvRust 기반 가상환경 설정 툴이다. 패키지를 설치하는 기본 명령어인 pip보다 5배는 빠른 패키지 설치와 의존성 설정이 간편해진다.특히 C계열 의존성 처리를 아주 잘 해주는 툴이다. Rust 기반이라서 속도가 빠른 게 당연하다고 볼 수 있고, 기초 설치와 사용법 마저도 간단하다.알아서 lockfile도 생성해주기 때문에 poetry와 같은 재사용 가능한 환경도 구축 가능하다. 하지만 torch, tensorflow와 같은 무거운 패키지들..