변수는 일반적으로 데이터를 저장할 수 있는 메모리 공간을 의미합니다. 다만, 파이썬에서의 변수는 C, 자바 같은 컴파일 언어에서의 변수와는 차이가 있습니다. 자바의 변수 자바를 예로 들면 자바는 변수를 선언하면서 선언된 자료형 만큼의 메모리를 확보합니다. 더 정확하게 말하면 원시 타입(Primitive Type)에 해당하는 변수(int, double, boolean 등)를 선언하면 선언된 타입만큼의 크기의 영역을 Stack 메모리에 선언합니다. 그리고 객체와 메서드 같은 참조형 타입(Reference type)은 Heap 메모리에 실질적인 데이터가 저장되고 그 데이터의 주소값이 stack 메모리에 저장되는 형태입니다. 파이썬의 변수 하지만 파이썬의 변수는 다릅니다. 파이썬에서 변수는 타입에 의해 선언되는..
deque 모듈 deque(데크, double-ended queue) 모듈은 양쪽 끝에서 삽입과 삭제가 가능한 자료구조입니다. 즉, 스택과 큐를 모드 지원하는 모듈로 Python의 collections 모듈에서 제공됩니다. deque를 사용하기 위해서는 리스트와 비슷한 형식으로 데이터를 저장해야 합니다. 기본적인 사용법 Import 방법 from collections import deque 생성 d = deque([1, 2, 3, 4]) 삽입 / 삭제 for i in range(5): deque_list.append(i) # 오른쪽 끝에 삽입 print(deque_list) # deque([0, 1, 2, 3, 4]) deque_list.pop() # 오른쪽 끝 요소 삭제 print(deque_list)..
Python - isinstance() isinstance() 함수는 Python 내장 함수 중 하나로, 어떤 객체가 특정 클래스나 타입의 인스턴스인지를 확인하는 데 사용됩니다. 주어진 객체가 지정한 클래스 또는 타입의 인스턴스인 경우 True를 반환하고, 아닌 경우 False를 반환합니다. 예 # 예제 클래스 정의 class Animal: pass class Dog(Animal): pass class Cat(Animal): pass # 객체 생성 dog_instance = Dog() cat_instance = Cat() # isinstance 사용 print(isinstance(dog_instance, Dog)) # True print(isinstance(cat_instance, Dog)) # Fals..
파이썬에서 함수를 호출할 때, 인자(argument)를 전달하는 방법에는 두 가지가 있습니다. 위치인자(Positional Arguments)와 키워드 인자(Keyword Arguments)로 나뉩니다. 1. 위치 인자 (Positional Arguments) 위치 인자는 함수 호출 시 전달하는 인자가 함수 정의에서 매개변수(parameter)의 위치에 따라 매핑되는 방식입니다. 즉, 인자의 순서가 함수 정의에서 매개변수의 순서와 일치해야 합니다. 위치인자를 사용할 때는 인자의 값을 순서대로 전달합니다. 일반적으로 인자를 정의하는 방식입니다. 예 def greet(name, age): print(f"Hello, {name}. You are {age} years old.") 이 함수는 name과 age라는..
인스턴스 메서드, 클래스 메서드, 정적 메서드 차이점 인스턴스 메서드(Instance Methods): 이 메서드들은 클래스의 객체 인스턴스에서 호출되며, 첫 번째 인자로 인스턴스 자체(self)를 받습니다. 인스턴스 변수에 접근하여 값을 읽거나 수정할 수 있습니다. 클래스 메서드(Class Methods): 클래스 메서드는 클래스에서 호출되며, 첫 번째 인자로 클래스(cls)를 받습니다. 이 메서드들은 클래스 변수를 수정하는 데 사용될 수 있습니다. 인스턴스에 대한 정보는 사용할 수 없습니다. 정적 메서드(Static Methods): @staticmethod 데코레이터로 표시된 메서드는 인스턴스나 클래스에 대한 참조 없이 동작합니다. 이 메서드들은 클래스나 인스턴스 상태를 수정할 필요가 없는 경우에 ..
Python에서 @property 데코레이터는 메서드를 클래스의 속성처럼 접근할 수 있게 해줍니다. 이를 사용하면, 메서드를 호출하는 것처럼 보이지 않고 속성에 접근하는 것처럼 코드를 작성할 수 있습니다. 이러한 방식은 파이썬스러운(pythonic) 방식으로 디자인할 수 있도록 한다고 합니다. 예제 예를 들어, 다음과 같은 클래스를 정의합니다. class Circle: def __init__(self, radius): self._radius = radius @property def radius(self): return self._radius @property def diameter(self): return self._radius * 2 def area(self): return 3.14 * self._ra..