Python의 사용자 정의 함수를 전 세계적으로 사용할 수 있게 만드는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-05-08 09:43:07
앞으로
1354명이 탐색했습니다.

Python 프로젝트를 개발할 때 일부 도구 기능을 작성하는 경우가 많습니다. 프로젝트 내 여러 .py 파일에서 이 도구 기능을 사용하려면 여러 곳에서 가져와야 하는데, 이는 매우 번거로운 작업입니다.

예를 들어 다음 예는 다음과 같습니다.

Python의 사용자 정의 함수를 전 세계적으로 사용할 수 있게 만드는 방법은 무엇입니까?

A.py 및 C.py 파일 모두 clean_msg 도구 기능을 사용하므로 둘 다 util.py에서 clean_msg를 가져와야 합니다. 이것은 자연스러운 것 같습니다.

그런데 오늘 icecream/buildins.py[1]의 소스코드를 보다가, 직접 Import하지 않고도 Python의 인쇄 기능을 사용하는 것처럼 도구 기능을 사용할 수 있는 고급 사용법을 갑자기 발견했습니다.

먼저 효과를 살펴보겠습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿