Developer 152

[python] isinstance()와 issubclass()의 차이점

파이썬에서 객체와 클래스의 관계를 판단할 때 자주 쓰는 함수가 isinstance()와 issubclass()이다.이 두 함수는 비슷해 보이지만, 용도와 검사 대상이 완전히 다르다.1. 함수 정의 및 기본 개념isinstance(object, classinfo)→ 객체가 해당 클래스 또는 그 하위 클래스의 인스턴스인지 확인issubclass(class, classinfo)→ 클래스가 다른 클래스의 하위 클래스인지 확인2. 기본 예제 코드class Animal: passclass Dog(Animal): passa = Dog()# isinstance는 객체 a가 어떤 클래스(또는 그 자식)인지 판단print(isinstance(a, Dog)) # Trueprint(isinstance(..

Developer/Python 2025.05.22

[python] OS 모듈에 대하여.

운영체제와 상호작용할 수 있게 도와주는 표준 모듈 os에 대해 자주 쓰이는 함수들을 코드와 함께 정리하고자 한다.표준 모듈임으로 pip install os 할 필요 없이 import os 를 통해 사용이 가능하다.os 모듈은 운영체제와 상호작용을 할 수 있는 기능들을 제공한다. https://docs.python.org/ko/3.13/library/os.html os — Miscellaneous operating system interfacesSource code: Lib/os.py This module provides a portable way of using operating system dependent functionality. If you just want to read or write a fi..

Developer/Python 2025.05.19

[python] File Pointer / read() , readline() , readlines() 비교

1. 파일 포인터(File Pointer)란?파이썬에서 파일을 다룰 때 내부적으로 파일 포인터(file pointer)가 현재 읽기/쓰기 작업이 이뤄지는 위치를 가리킨다.파일을 열면 포인터는 항상 파일의 처음(0 바이트 위치)을 가리키고, 파일을 읽거나 쓰면서 이 포인터는 앞으로 이동한다.1-1. 파일 포인터 확인: tell()with open("example.txt", "r") as f: print(f.tell()) # 현재 위치 확인 f.read(5) print(f.tell()) # 5바이트 읽은 후 위치 tell() 메서드를 통해 현재 파일 포인터의 위치(바이트 단위)를 확인할 수 있음.1-2. 파일 포인터 이동: seek(offset, whence)with open("examp..

Developer/Python 2025.05.19

[python] Standard Stream , Diagnosing stream problems

1. 표준 스트림(Standard Stream)파이썬은 기본적으로 아래와 같은 세 가지 표준 스트림을 제공한다Stream역할설명sys.stdin표준 입력사용자 입력을 받을 때 사용(ex. input() 내부적으로 사용)sys.stdout표준 출력출력 데이터를 화면에 표시할 때 사용(ex. print() 내부적으로 사용)sys.stderr표준 에러 출력에러 메시지 출력 전용 스트림에러 로깅이나 디버깅에 사용import sys# 입력 받기# data = sys.stdin.readline()# 출력하기sys.stdout.write("표준 출력\n")# 에러 출력sys.stderr.write("표준 에러 출력\n") 2. 예외 발생 시 e.errno 로 에러 진단파일 입출력 등에서 예외가 발생하면, OSErro..

Developer/Python 2025.05.19

[python] 파이썬에서 운영체제에 따른 파일 경로 및 개행 처리

python의 파일 경로 처리파이썬에서 파일 경로를 다룰 때는 운영체제마다 디렉토리 구분자(path separator)가 다르다는 점을 반드시 고려해야 한다.1. 운영체제별 디렉토리 구분자Windows: 백슬래시 \Linux / macOS: 슬래시 /# Windows 예시C:\Users\miomio\Documents# Linux/macOS 예시/home/miomio/documents또한 주의 사항으로는 Window에서는 대소문자를 구별하지 않지만, 리눅스에서는 대소문자를 구분한다는 점도 명심해야한다. 2. 파이썬에서 경로를 안전하게 처리하는 방법2-1. os.path 모듈 사용import ospath = os.path.join("folder", "subfolder", "file.txt")print(pat..

Developer/Python 2025.05.18

[python] 클로저(Closure)

클로저(Closure)란? 클로저(Closure)는 함수가 종료된 이후에도, 해당 함수의 지역 변수 값을 기억하는 기법이다.함수 내부에 선언된 내부 함수(inner function)가 바깥 함수의 변수에 접근할 수 있으며, 그 값이 유지된다. 1. 클로저가 아닌 잘못된 예def outer(par): loc = parvar = 1outer(var)print(par)print(loc)위 코드는 오류(NameError)를 발생시킨다.par와 loc는 함수의 지역 변수이기 때문에 외부에서 접근할 수 없다. 2. 클로저 예제def outer(par): loc = par def inner(): return loc return innervar = 1fun = outer(var)pri..

Developer/Python 2025.05.17

[python] lambda , map() , filter()

1. lambda 함수 기본 구조lambda 매개변수들: 표현식함수 이름 없이 사용하는 익명 함수간단한 계산이나 함수를 간결하게 표현할 때 사용예제two = lambda: 2sqr = lambda x: x * xpwr = lambda x, y: x ** yfor a in range(-2, 3): print(sqr(a), end=" ") print(pwr(a, two()))two()는 항상 2를 반환sqr(a)는 a의 제곱pwr(a, 2)는 a의 2제곱 2. map() 함수와 lambdamap(함수, 반복가능한객체)반복 가능한 객체는 1개 이상일 수 있다.예시 코드와 설명은 아래의 주석을 참고한다.반복 가능한 객체의 각 요소에 함수를 적용map 결과는 이터레이터 → list()로 변환해서 사용예..

Developer/Python 2025.05.17

[python] 클래스 변수와 인스턴스 변수 그리고 __dict__ , hasattr()

1. __dict__란?Python의 모든 객체는 내부적으로 자신만의 __dict__ 딕셔너리를 가지고 있다.여기에는 해당 객체가 가진 모든 인스턴스 변수가 key-value 형태로 저장된다.class Example: def __init__(self, val): self.value = valobj = Example(10)print(obj.__dict__) # {'value': 10}2. hasattr() 함수란?hasattr(object, name)는 특정 객체에 지정한 이름의 속성(변수나 메서드)이 존재하는지를 True / False로 알려주는 내장 함수이다.문법hasattr(객체, '속성명')예제class Test: def __init__(self): self.v..

Developer/Python 2025.05.16

[python] except raise assert

1. except 구문에서 raise 사용raise는 예외를 발생시킬 때 사용하는 키워드.반드시 except 안에서만 써야 하는 건 아님일반 코드, 함수, 조건문 등에서도 raise는 자유롭게 사용할 수 있다def divide(x, y): if y == 0: raise ValueError("0으로 나눌 수 없습니다.") return x / y except 블록 안에서 raise를 쓰는 경우는 예외를 다시 던질 때이다.try: something()except ValueError as e: print("에러 발생:", e) raise # 예외를 다시 던짐 (re-raise) 2. except 순서의 중요성순서 매우 중요하다! 예외는 위에서부터 차례대로 검사한다.구체적..

Developer/Python 2025.05.16

[python] sys.path 와 sys.path.append()

파이썬에서 모듈이나 패키지를 불러올 때 import 구문이 어떻게 모듈 경로를 찾는지 아는 게 중요하다.1. sys.path란?파이썬이 모듈을 찾을 때 참고하는 경로들의 리스트야.현재 작업 디렉터리환경 변수 PYTHONPATH에 지정된 경로들표준 라이브러리 경로 등즉, import할 때 이 경로들을 순서대로 뒤져서 모듈을 찾는다.2. sys.path.append()는 무엇인가?이 함수는 sys.path 리스트에 새로운 경로를 추가하는 역할을 한다. 그래서 파이썬 인터프리터가 모듈을 검색할 때 추가한 경로도 포함된다.import syssys.path.append('/내가/추가하고/싶은/경로')3. 왜 쓰는가?모듈이 기본 경로(예: 현재 디렉터리, site-packages 등) 외부에 있을 때커스텀 라이브러..

Developer/Python 2025.05.15
728x90