본문 바로가기

Python10

Python 하위/상위 폴더의 함수 import하는 법 Python 프로젝트가 커지면서 파일이 여러 폴더로 나뉘면, 다른 폴더에 있는 함수를 import해야 하는 일이 자주 발생합니다. 그러나 import 문법은 폴더 구조에 따라 다소 헷갈릴 수 있습니다.본 글에서는 Python에서 하위 폴더, 상위 폴더에 있는 함수나 모듈을 import하는 방법을 정리하였습니다.1. 현재 폴더의 함수 import같은 폴더에 있는 파일은 파일명(.py 확장자 제외)으로 바로 import할 수 있습니다.예시 구조project/├── main.py└── utils.pymain.pyfrom utils import my_functionmy_function() 2. 하위 폴더에 있는 함수 import예시 구조project/├── main.py└── helpers/ ├── __.. 2025. 7. 31.
Python lambda 함수란 해당 글에서는 **한 줄짜리 익명 함수** 라고 불리는 람다 함수(lambda function)에 대해 설명드리겠습니다. 이는 본문이 짧고 일회성 함수가 필요한 경우 매우 유용하게 쓰입니다. lambda 함수란 무엇인가요?lambda 함수는 이름 없이 정의되는 익명 함수입니다. def를 사용하지 않고도 간단한 처리를 위한 함수를 만들 수 있습니다.기본 문법은 다음과 같습니다:lambda 매개변수들: 표현식 예를 들어, 아래와 같이 사용할 수 있습니다.add = lambda x, y: x + yprint(add(3, 5)) # 출력: 8 위 코드는 아래의 일반 함수 정의와 동일합니다:def add(x, y): return x + y lambda의 주요 특징으로는 아래와 같습니다,한 줄로 정의 가능.. 2025. 7. 16.
Python 함수 위 @ - 데코레이터 란 Python 코드를 보다 보면 종종 함수나 메서드 위에 @ 기호로 시작하는 이상한(?) 줄을 보게 됩니다. 예를 들면 다음과 같은 형태입니다:@my_decoratordef my_function(): ... 이것은 데코레이터(decorator)라는 문법으로, 기존 함수나 클래스의 동작을 수정하거나 확장할 수 있게 해주는 Python의 강력한 기능입니다. 본 글에서는 데코레이터의 개념, 기본 사용법, 자주 쓰는 내장 데코레이터들, 그리고 직접 만드는 방법을 다루려고 합니다. 데코레이터란?데코레이터는 다른 함수를 인자로 받아 새로운 기능을 추가한 뒤 반환하는 함수입니다. 흔히 함수에 어떤 "포장"을 입혀주는 역할을 합니다. 예를 들어, 아래와 같은 데코레이터 함수가 있다고 합시다:def my_decora.. 2025. 7. 15.
Python *args, **kwargs 의미 Python 함수를 보다 보면 아래와 같은 문법이 자주 보입니다.def my_function(*args, **kwargs): 많은 Python 라이브러리나 프레임워크에서 흔하게 등장하며, 가변 인자를 처리할 때 사용하는 매우 유용한 기능입니다.해당 글에서는 *args와 **kwargs의 의미, 사용 방법, 예제에 대해 설명드리겠습니다. *args: 위치 인자를 여러 개 받을 때*args는 임의 개수의 위치 인자(positional arguments)를 튜플 형태로 받아주는 기능입니다.예시: 숫자들을 더하는 함수def add_all(*args): return sum(args)print(add_all(1, 2, 3)) # 출력: 6print(add_all(10, 20, 30, 40)) # .. 2025. 7. 14.
Python expand() 및 repeat() PyTorch에서 모델 학습이나 텐서 조작을 하다 보면 "데이터를 특정 방향으로 늘려야" 하는 상황이 자주 발생합니다. 이럴 때 사용하는 대표적인 함수가 expand()와 repeat()입니다.두 함수 모두 텐서의 크기를 확장하는 데 쓰이지만, 내부 동작 방식은 매우 다릅니다. 본 글에서는 expand vs repeat의 차이와 각각의 쓰임새, 예제, 그리고 주의해야 할 점을 설명합니다. expand()란?expand()는 텐서의 **메모리를 복사하지 않고** 브로드캐스팅 방식으로 차원을 확장하는 함수입니다. 즉, 원래 데이터를 공유한 채로 여러 위치에서 참조만 하도록 만듭니다.import torchx = torch.tensor([1, 2, 3]) # shape: [3]x = x.unsqu.. 2025. 7. 12.
Python squeeze 및 unsqueeze 함수 - view와의 차이 PyTorch에서 텐서의 차원을 다룰 때 매우 자주 사용되는 함수가 squeeze()와 unsqueeze()입니다. 이 두 함수는 텐서의 차원을 제거하거나 추가할 때 사용되며, 딥러닝 모델을 구현할 때 입력 형식을 맞추거나 특정 연산을 위해 매우 자주 등장합니다.이 글에서는 squeeze()와 unsqueeze()의 개념과 사용법을 설명하고, 다른 view 함수와의 차이도 함께 비교합니다. squeeze()란?squeeze()는 텐서에서 크기가 1인 차원을 제거하는 함수입니다. 예를 들어, 크기가 (1, 3, 1, 5)인 텐서를 squeeze() 하면 (3, 5)로 바뀝니다. 아래 예시와 같이 크기가 1인 차원이 자동으로 제거됩니다.import torchx = torch.randn(1, 3, 1, 5)p.. 2025. 7. 12.