본문 바로가기

PEP83

Python 모듈의 import 문은 항상 맨 위에 있어야 합니까?, Should import statements always be at the top of a module? 질문 PEP 8는 다음과 같이 명시합니다: 임포트는 항상 파일의 맨 위에 위치하며, 모듈 주석과 독스트링 바로 다음에 오고, 모듈 전역 변수와 상수 앞에 위치합니다. 하지만 내가 임포트하는 클래스/메소드/함수가 드물게 사용되는 경우, 필요할 때만 임포트하는 것이 더 효율적이지 않을까요? 이렇게 하는 것이: class SomeClass(object): def not_often_called(self) from datetime import datetime self.datetime = datetime.now() 이렇게 하는 것보다 더 효율적이지 않을까요? from datetime import datetime class SomeClass(object): def not_often_called(self) self.d.. 2023. 10. 9.
Python 일부 함수들은 왜 함수 이름 앞뒤에 언더스코어 "__"가 있는 걸까요?, Why do some functions have underscores "__" before and after the function name? 질문 이 "밑줄"은 자주 발생하는 것 같은데, 이것은 파이썬 언어의 요구사항인지 아니면 단지 관습의 문제인지 궁금했습니다. 또한, 어떤 함수들이 밑줄을 가지고 있는지 그리고 왜 (__init__ 같은) 밑줄을 가지고 있는지 이름과 설명을 알려주실 수 있을까요? 답변 파이썬 PEP 8 -- 파이썬 코드 스타일 가이드에서 다음을 발췌: 기술적: 네이밍 스타일 다음과 같은 선행 또는 후행 밑줄을 사용한 특수 형식이 인식됩니다 (이러한 형식은 일반적으로 모든 케이스 규칙과 결합될 수 있음): _single_leading_underscore: 약한 "내부 사용" 표시자입니다. 예를 들어 from M import *은 밑줄로 시작하는 객체를 가져오지 않습니다. single_trailing_underscore_: 파.. 2023. 9. 16.
Python에서 None 테스트 [중복], not None test in Python [duplicate] 질문 Out of these not None tests. if val != None: if not (val is None): if val is not None: 어느 것이 선호되며, 왜 그런가? 답변 if val is not None: # ... None이 아닌 변수를 테스트하는 Pythonic 관용구입니다. 이 관용구는 기본 매개변수를 갖는 키워드 함수를 선언할 때 특별한 용도가 있습니다. Python에서 is는 동일성을 테스트합니다. Python 스크립트/프로그램에서 None의 인스턴스는 하나뿐이므로, 이를 위한 최적의 테스트는 is입니다. Johnsyweb이 지적한 바와 같이, 이 내용은 "프로그래밍 권장사항"으로 PEP 8에서 설명되어 있습니다. if not (val is None):보다 이것이 .. 2023. 6. 25.