Python 프로젝트를 개발할 때 일부 도구 기능을 작성하는 경우가 많습니다. 프로젝트 내 여러 .py 파일에서 이 도구 기능을 사용하려면 여러 곳에서 가져와야 하는데, 이는 매우 번거로운 작업입니다.
예를 들어 다음 예는 다음과 같습니다.
A.py 및 C.py 파일 모두 clean_msg 도구 기능을 사용하므로 둘 다 util.py에서 clean_msg를 가져와야 합니다. 이것은 자연스러운 것 같습니다.
그런데 오늘 icecream/buildins.py[1]의 소스코드를 보다가, 직접 Import하지 않고도 Python의 인쇄 기능을 사용하는 것처럼 도구 기능을 사용할 수 있는 고급 사용법을 갑자기 발견했습니다.
먼저 효과를 살펴보겠습니다.
A.py와 C.py는 clean_msg를 가져오지 않고 이 기능을 직접 사용했다는 점에 유의하세요. 그리고 그것은 완전히 잘 작동합니다.
핵심 원칙은 항목 파일 main.py에 있습니다. 제가 프레임에 넣은 3줄은 다음과 같습니다.
import builtins from util import clean_msg setattr(builtins, 'clean_msg', clean_msg)
Python에서는 모든 내장 함수나 클래스가 내장 모듈에 있으므로 가져오지 않고도 코드에서 직접 사용할 수 있습니다. . 이제 사용자 정의 도구 기능을 내장 모듈에 등록하기만 하면 내장 기능과 동일한 효과를 얻을 수 있습니다.
도구 기능을 내장 기능으로 등록하려면 항목 파일에서 해당 기능을 가져온 다음 setattr을 사용하여 내장 모듈의 속성으로 설정하기만 하면 됩니다. 두 번째 매개변수는 전역적으로 호출하고자 할 때의 이름이고, 세 번째 매개변수는 등록해야 하는 도구 기능입니다. 이름은 기존 내장 함수와 중복되지 않는 한 유틸리티 함수의 이름과 다를 수 있습니다.
등록이 완료된 후 이 프로젝트의 전체 런타임 동안 내장 함수를 호출하는 것처럼 모든 .py 파일에 등록된 이름을 통해 이 도구 함수를 직접 호출할 수 있습니다.
[1] icecream/buildins.py: https://github.com/gruns/icecream/blob/master/icecream/builtins.py
위 내용은 Python의 사용자 정의 함수를 전 세계적으로 사용할 수 있게 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!