본문 바로가기

반응형

언어/Python

(142)
[ Python ] 정확하고 오차없는 10진수 연산 - Decimal 클래스 Decimal 클래스는 Python의 decimal 모듈에 포함된 클래스입니다. 이 클래스는 고정 소수점(decimal floating point) 수학을 수행하기 위해 사용됩니다. 일반적인 부동 소수점 연산이 근사치로 수행되는데 반해, Decimal 클래스는 더 높은 정확도를 제공하며, 특히 금융 계산이나 정확한 소수 계산이 필요한 경우에 유용합니다.주요 특징 및 사용법정확한 소수 연산:Decimal 클래스는 내부적으로 10진수를 기반으로 하여 소수 연산을 처리합니다. 부동 소수점 연산에서는 자주 발생하는 오차 문제를 줄일 수 있습니다.from decimal import Decimala = Decimal('0.1')b = Decimal('0.2')c = a + bprint(c) # 0.3 출력위 예제..
[ Python ] 클래스를 상속해서 나의 클래스 만들기 (다중 상속 포함) 파이썬에서 클래스 상속은 객체 지향 프로그래밍의 중요한 개념으로, 기존 클래스(부모 클래스 또는 슈퍼 클래스)의 속성과 메서드를 새 클래스(자식 클래스 또는 서브 클래스)에서 재사용하거나 확장할 수 있게 합니다. 상속을 통해 코드의 재사용성과 확장성을 높일 수 있습니다.상속의 기본 개념부모 클래스 (Super Class / Base Class): 다른 클래스가 상속받을 수 있는 기존 클래스입니다.자식 클래스 (Sub Class / Derived Class): 부모 클래스를 상속받아 부모 클래스의 속성과 메서드를 물려받는 클래스입니다.상속의 특징속성과 메서드의 상속: 자식 클래스는 부모 클래스의 모든 속성과 메서드를 자동으로 상속받습니다.메서드 오버라이딩 (Method Overriding): 자식 클래스에..
[ Python ] 클래스 내에서 멤버 변수 선언하기 (지역/전역) 파이썬 클래스에서 내부에서만 접근 가능한 변수(속성)와 외부에서 접근 가능한 변수를 선언하는 방법에 대해 설명하겠습니다.외부에서 접근 가능한 변수클래스 내에서 외부에서 접근 가능한 변수는 보통 인스턴스 변수로 정의되며, self를 사용하여 선언합니다. 이러한 변수는 클래스 인스턴스가 생성될 때 설정되며, 객체를 통해 외부에서도 접근할 수 있습니다.class MyClass: def __init__(self, public_var): self.public_var = public_var # 외부에서 접근 가능한 변수obj = MyClass("Hello")print(obj.public_var) # 출력: Hello내부에서만 접근 가능한 변수 (프라이빗 변수)파이썬에서는 진정한 의미의 "프라이..
[ Python ] Class 의 method ( 멤버 함수) 정의하기 파이썬 클래스의 메서드는 객체의 동작을 정의하는 함수입니다. 클래스 내부에 정의된 함수로, 객체의 상태를 변경하거나 특정 작업을 수행할 수 있습니다. 메서드는 기본적으로 객체 인스턴스와 연결되어 있어, 객체 상태(속성)에 접근하거나 수정할 수 있습니다.메서드의 종류인스턴스 메서드 (Instance Method)객체의 인스턴스에서 호출되는 메서드입니다.메서드 정의 시 첫 번째 인수로 self를 받으며, 이는 호출한 객체 자체를 가리킵니다.클래스 메서드 (Class Method)클래스 자체에서 호출되는 메서드입니다.메서드 정의 시 첫 번째 인수로 cls를 받으며, 이는 호출한 클래스 자체를 가리킵니다.@classmethod 데코레이터를 사용하여 정의합니다.정적 메서드 (Static Method)클래스나 인스..
[ Python ] 클래스의 선행 참조 문제 분서과 해결 방법 파이썬에서 클래스의 "선행 참조" 문제는 클래스 정의 내부에서 해당 클래스의 이름을 참조하려고 할 때 발생할 수 있는 문제입니다. 이는 주로 클래스 내부에서 클래스 자체의 이름을 이용하여 속성이나 메서드를 정의하려 할 때 발생할 수 있습니다.문제 설명파이썬에서는 클래스가 정의되는 동안 그 클래스 이름은 아직 전역 심볼 테이블에 등록되지 않은 상태입니다. 그래서 클래스 정의 내부에서 그 클래스 이름을 바로 참조하려 하면 에러가 발생할 수 있습니다.예제 1: 직접 참조 시도class Node: left: Node right: Node def __init__(self, value): self.value = value self.left = None self...
[ Python ] 클래스 변수와 인스턴스 변수에 대해서 알아보기 클래스와 인스턴스 변수는 Python에서 객체 지향 프로그래밍의 중요한 개념입니다. 두 개념 모두 클래스의 속성을 정의하지만, 그 역할과 사용 방법에는 차이가 있습니다.클래스 변수 (Class Variable)클래스 변수는 클래스 자체에 속하는 변수로, 클래스의 모든 인스턴스 간에 공유됩니다. 클래스 변수는 클래스 정의 내부에서, 메서드 밖에서 정의됩니다.특징:모든 인스턴스가 동일한 클래스 변수를 공유합니다.클래스 이름을 통해 접근하거나, 인스턴스를 통해 접근할 수 있습니다.예제:class Dog: species = "Canis familiaris" # 클래스 변수 def __init__(self, name, age): self.name = name # 인스턴스 변수 ..
[ Python ] pickle를 사용하여 데이터를 읽고 쓰기 pickle 패키지는 Python 객체를 파일에 저장하거나 파일에서 읽어오는 데 사용됩니다. pickle은 객체를 바이트 스트림으로 직렬화(serialize)하고, 다시 원래의 객체로 역직렬화(deserialize)할 수 있습니다.pickle을 사용한 파일 쓰기 (저장)객체를 파일에 저장하려면 pickle의 dump() 메서드를 사용합니다. 이 메서드는 지정된 파일에 객체를 직렬화하여 저장합니다.import pickle# 예제 데이터: 딕셔너리 객체data = {'name': 'Alice', 'age': 30, 'is_student': False}# 데이터를 저장할 파일 열기 (쓰기 모드)with open('data.pickle', 'wb') as file: pickle.dump(data, file..
[ Python ] struct를 사용해서 little/big endian으로 파일 읽고 쓰기 struct 패키지는 Python에서 바이너리 데이터를 다룰 때 매우 유용한 도구입니다. 이 패키지를 사용하면 데이터를 특정한 바이트 순서(endianness)로 직렬화하거나 직렬화된 데이터를 파싱할 수 있습니다. 이 패키지의 핵심 기능 중 하나는 데이터의 바이트 순서를 지정할 수 있다는 것입니다.엔디언(Endianness) 개념엔디언은 멀티바이트 데이터를 메모리에 저장할 때 바이트의 순서를 정의하는 방식입니다.빅 엔디언 (Big Endian): 가장 중요한 바이트(Most Significant Byte, MSB)가 가장 앞에 오며, 가장 덜 중요한 바이트(Least Significant Byte, LSB)는 가장 뒤에 위치합니다. 인간이 숫자를 읽는 방식과 비슷합니다.리틀 엔디언 (Little Endi..

반응형