■ @dataclass 데코레이터의 unsafe_hash 인자를 사용해 객체 해시값을 사용하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
from dataclasses import dataclass @dataclass(unsafe_hash = True) class Student: id : int name : str student1 = Student(100, "홍길동") student2 = Student(100, "홍길동") student3 = Student(100, "홍길동") student4 = Student(200, "이영희") print({student1, student2, student3, student4}) """ {Student(id=200, name='이영희'), Student(id=100, name='홍길동')} """ |
■ @dataclass 데코레이터의 frozen 인자를 사용해 불변 클래스를 만드는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
from dataclasses import dataclass @dataclass(frozen = True) class Student: id : int name : str student1 = Student(100, "홍길동") student1.id = 200 """ Traceback (most recent call last): File "/home/king/testproject/main.py", line 10, in <module> student1.id = 200 File "<string>", line 4, in __setattr__ dataclasses.FrozenInstanceError: cannot assign to field 'id' """ |
■ @dataclass 데코레이터의 order 인자를 사용해 객체 비교하거나 정렬하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
from dataclasses import dataclass @dataclass(order = True) class Student: id : int name : str student1 = Student(100, "홍길동") student2 = Student(200, "이영희") print(student1 > student2) print(sorted([student2, student1])) """ False [Student(id=100, name='홍길동'), Student(id=200, name='이영희')] """ |
■ @dataclass 데코레이터를 사용해 클래스를 만드는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
from dataclasses import dataclass @dataclass class Student: id : int name : str student1 = Student(100, "홍길동") student2 = Student(200, "이영희") print(student1) print(student2) print(student1 == student2) """ User(number=123, name='Kim') User(number=123, name='Kim') True """ |
■ 클래스의 __repr__ 메소드를 사용해 객체의 데이터를 출력하는 방법을 보여준다. ※ 클래스 변수나 속성이 추가될 때마다 __repr__ 메소드도 추가 수정해야 한다. ▶
더 읽기
■ 클래스에서 단순 클래스를 만드는 경우를 보여준다. ※ 객체를 출력하면 객체의 데이터가 표시되지 않는다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
class Student: def __init__(self, id : int, name : str): self.id = id self.name = name student1 = Student(100, "홍길동") student2 = Student(200, "이영희") print(student1) print(student2) """ <__main__.Student object at 0x7f058de7bfa0> <__main__.Student object at 0x7f058de7bee0> """ |
■ inf 변수를 사용해 float 타입의 양/음 무한대 값을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
import math positiveInfiniteFloatValue = math.inf negativeInfiniteFloatValue = -math.inf print(positiveInfiniteFloatValue) print(negativeInfiniteFloatValue) """ inf -inf """ |
■ float 클래스의 생성자를 사용해 양/음 무한대 값을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
import math positiveInfiniteFloatValue = float('inf' ) negativeInfiniteFloatValue1 = float('-inf') negativeInfiniteFloatValue2 = -float('inf' ) print(positiveInfiniteFloatValue ) print(negativeInfiniteFloatValue1) print(negativeInfiniteFloatValue2) """ inf -inf -inf """ |
■ maxsize 변수를 사용해 int 타입의 최소/최대값을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
import sys maximumInteger = sys.maxsize minimumInteger = -(sys.maxsize + 1) print(maximumInteger) print(minimumInteger) """ 9223372036854775807 -9223372036854775808 """ |
■ 모듈에서 __version__ 변수를 사용해 모듈 버전을 구하는 방법을 보여준다. ▶ main.py
|
import langchain print(langchain.__version__) """ 0.2.5 """ |
■ requests 패키지를 설치하는 방법을 보여준다. 1. 명령 프롬프트를 실행한다. 2. 명령 프롬프트에서 아래 명령을 실행한다. ▶ 실행 명령
■ korean_lunar_calendar 패키지를 설치하는 방법을 보여준다. 1. 명령 프롬프트를 실행한다. 2. 명령 프롬프트에서 아래 명령을 실행한다. ▶ 실행 명령
|
pip install korean_lunar_calendar |
■ js2py 패키지를 설치하는 방법을 보여준다. 1. 명령 프롬프트를 실행한다. 2. 명령 프롬프트에서 아래 명령을 실행한다. ▶ 실행 명령
■ yield 키워드를 사용해 제네레이터를 생성하는 함수를 만드는 방법을 보여준다. ▶ main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
def getCountGenerator(value): count = 1 while count <= value: yield count count += 1 countGenerator = getCountGenerator(5) for count in countGenerator: print(count) def getCountGenerator(value): count = 1 while count <= value: yield count count += 1 countGenerator = getCountGenerator(5) for count in countGenerator: print(count) """ 1 2 3 4 5 """ |
■ quote/unquote 함수를 사용해 쿼리 문자열에서 인코딩/디코딩 쿼리 문자열을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
from urllib import parse sourceString = "서울" urlEncodedString = parse.quote(sourceString) urlDecodedString = parse.unquote(urlEncodedString) print(urlEncodedString) print(urlDecodedString) """ %EC%84%9C%EC%9A%B8 서울 """ |
■ urlencode 함수에서 encoding 인자를 사용해 텍스트 인코딩을 설정하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from urllib import parse queryStringList = [("value1", "서울"), ("value2", "인천")] queryStringURLEncoded = parse.urlencode(queryStringList, encoding = "UTF-8", doseq = True) print(queryStringURLEncoded) """ value1=%EC%84%9C%EC%9A%B8&value2=%EC%9D%B8%EC%B2%9C """ |
■ urlencode 함수를 사용해서 쿼리 문자열 튜플 리스트에서 URL 인코딩 쿼리 문자열을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from urllib import parse queryStringList = [("value1", "서울"), ("value2", "인천")] queryStringURLEncoded = parse.urlencode(queryStringList, doseq = True) print(queryStringURLEncoded) """ value1=%EC%84%9C%EC%9A%B8&value2=%EC%9D%B8%EC%B2%9C """ |
■ urlencode 함수를 사용해 파싱된 쿼리 문자열 딕셔너리에서 URL 인코딩 쿼리 문자열을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
from urllib import parse parseResult = parse.urlparse('https://icodebroker.com?value1=서울&value2=인천') queryString = parseResult.query queryStringDictionary = parse.parse_qs(queryString) urlEncodedQueryString = parse.urlencode(queryStringDictionary, doseq = True) print(urlEncodedQueryString) """ value1=%EC%84%9C%EC%9A%B8&value2=%EC%9D%B8%EC%B2%9C """ |
■ parse_qs 함수를 사용해 쿼리 문자열을 파싱해서 쿼리 문자열 딕셔너리를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from urllib import parse parseResult = parse.urlparse("https://icodebroker.com?value1=서울&value2=인천") queryString = parseResult.query queryStringDictionary = parse.parse_qs(queryString) print(queryStringDictionary) """ {'value1': ['서울'], 'value2': ['인천']} """ |
■ urlparse 함수를 사용해 URL을 파싱해서 ParseResult 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from urllib import parse parseResult = parse.urlparse('https://icodebroker.com?value1=서울&value2=인천') print(parseResult) """ ParseResult(scheme='https', netloc='icodebroker.com', path='', params='', query='value1=서울&value2=인천', fragment='') """ |
■ str 클래스의 format 메소드에서 포맷 문자열을 사용해 숫자값 앞에 일정 개수의 0 문자를 채우는 방법을 보여준다. ▶ 예제 코드 (PY)
|
value = 2 print("{0:06d}".format(value)) """ 000002 """ |
■ format 함수에서 포맷 문자열을 사용해 숫자값 앞에 일정 개수의 0 문자를 채우는 방법을 보여준다. ▶ 예제 코드 (PY)
|
value = 2 print(format(value, "03")) """ 0002 """ |
■ 포맷 문자열을 사용해 숫자값 앞에 일정 개수의 0 문자를 채우는 방법을 보여준다. ▶ 예제 코드 (PY)
|
print("%010d" % 15) """ 0000000015 """ |
■ 소인수 분해(Factorization) 리스트를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
import math def getPrimeNumberList(value): isPrimeNumberList = [True] * value maximumLength = math.ceil(math.sqrt(value)) for i in range(2, maximumLength): if isPrimeNumberList[i]: for j in range(i + i, value, i): isPrimeNumberList[j] = False return [i for i in range(2, value) if isPrimeNumberList[i]] def getFactorizationList(value): factorizationList = [] for primeNumber in getPrimeNumberList(value): count = 0 while value % primeNumber == 0: value /= primeNumber count += 1 if count > 0: factorizationList.append((primeNumber, count)) return factorizationList factorizationList = getFactorizationList(12) print(factorizationList) """ [(2, 2), (3, 1)] """ |
■ 약수 리스트를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
import math def getDivisorList(value): divisorList = [] length = int(math.sqrt(value)) + 1 for i in range(1, length): if value % i == 0: divisorList.append(i) divisorList.append(value // i) divisorList.sort() return divisorList divisorList = getDivisorList(90) print(divisorList) """ [1, 2, 3, 5, 6, 9, 10, 15, 18, 30, 45, 90] """ |