본문 바로가기
728x90

사용방법5

[파이썬] 클래스 private와 protected 메소드 사용방법 및 특징 클래스 private와 protected 메소드 사용방법 및 특징 파이썬에서는 private(비공개) 및 protected(보호된) 메소드를 만드는 공식적인 방법이 다른 프로그래밍 언어들과 다소 다릅니다. 파이썬은 이름 맹글링(name mangling)이라는 메커니즘을 사용하여 private 및 protected 메소드에 대한 접근을 제한합니다. 이는 파이썬의 '우리는 모두 책임감 있는 성인이다'라는 철학에 기반한 것으로, 개발자들에게 클래스의 내부 구현에 대한 접근을 완전히 막기보다는 자제력을 요구합니다. Private 메소드 Private 메소드는 클래스 내부에서만 사용되도록 의도된 메소드입니다. 파이썬에서는 메소드 이름 앞에 두 개의 밑줄(__)을 붙여서 private 메소드를 나타냅니다. 예: _.. 2024. 1. 16.
파이썬 파일이동 os.rename, shutil.move 차이와 사용 방법 개발 PC에서는 os 코드로 파일이동이 잘 되었는데, 배포 exe를 만들고 다른 pc에서 동작시켰더니 파일이동이 안됐다. PC 사용자 계정문제 인가 싶어서, 실행파일을 관리자권한으로 실행했는데, 동작이 안됐고 폴더자체의 권한설정을 바꿔서 했는데도, 동작이 안됐다. 그런데, 폴더를 변경하지 않고 동작시키면 (os 모듈에서 파일이동을 사용하지 않으면) S/W의 전체적인 동작이 잘됐다. 결국, 파일이동할 때 문제가 생기는거라서, 파일이동을 시키는 코드를 확인하니 os.rename()을 사용하고 있었다. os.rename 과 shutil.move의 차이점 원자성(Atomicity): os.rename은 파일 또는 디렉토리 이동이 원자적이지 않습니다. 즉, 파일 이동 중 오류가 발생하면 중간 상태로 남을 수 있습.. 2023. 12. 12.
vsnprintf 의 기능과 가변인자(va_list) 리스트 사용 방법 vsnprintf(buf, sizeof(buf), fmt, vl)의 기능 vsnprintf 함수는 형식 문자열과 가변 인자 리스트를 받아서 문자열을 생성하는 함수입니다. 이 함수는 printf와 비슷하지만, 출력 대상이 버퍼에 저장된다는 점이 다릅니다. 함수의 원형은 다음과 같습니다. int vsnprintf(char *buf, size_t size, const char *fmt, va_list vl); buf: 문자열을 저장할 버퍼의 포인터입니다. size: 버퍼의 크기입니다. 버퍼에 저장할 수 있는 최대 문자 수를 나타냅니다. fmt: 형식 문자열입니다. 이는 printf와 동일한 형식을 사용합니다. vl: 가변 인자 리스트입니다. va_start 및 va_arg와 함께 사용됩니다. vsnprintf.. 2023. 12. 6.
파이썬 딕셔너리 사용방법 : 생성/삭제/업데이트/병합/정렬/제거 파이썬 딕셔너리 사용방법 : 생성/삭제/업데이트/병합/정렬/제거 Python의 딕셔너리는 키-값 쌍을 저장하는 유용한 데이터 구조입니다. 다음은 '생성, 삭제, 업데이트, 병합, 정렬, 요소 제거'와 같은 주요 딕셔너리 사용방법 입니다. 1. 딕셔너리의 생성: d = { 'key':'value' } 2. 딕셔너리의 업데이트: d['key'] = 'new_value' 3. 키에 값 할당: d['new_key'] = 'value' 4. 딕셔너리의 길이 구하기: len(d) 5. 딕셔너리의 값 가져오기: d['key'] 6. 딕셔너리를 반복문으로 순회하기: for key, value in d.items(): print(key, value) 7. 키로 값 얻기: d.get('key') 8. 딕셔너리에서 키 제거.. 2023. 2. 22.
파이썬 리스트 사용방법 - 생성/삽입/슬라이싱/교집합/정렬/카운트 파이썬 리스트 사용방법 - 생성/삽입/슬라이싱/교집합/정렬/카운트 Python에서 리스트는 매우 유연하고 강력한 데이터 구조입니다. 여기에는 '생성, 삽입, 슬라이싱, 교집합, 정렬, 카운트'와 같은 다양한 작업을 수행할 수 있는 방법들이 포함되어 있습니다. 1. 리스트 생성 mylist = [1, 2, 3, 4, 5] 2. 리스트 요소 삽입 mylist.insert(1, "A") # mylist = [1, "A", 2, 3, 4, 5] 3. 리스트 요소 수정 mylist[2] = "B" # mylist = [1, "A", "B", 3, 4, 5] 4. 리스트 슬라이싱 mylist[2:4] # ["B", 3] 5. 리스트 내포 mylist = [x for x in range(5)] # mylist = [.. 2023. 2. 22.
728x90