Python 프로그램의 성능을 향상시키는 7가지 습관

WBOY
풀어 주다: 2023-04-16 18:01:03
앞으로
649명이 탐색했습니다.

Python 프로그램의 성능을 향상시키는 7가지 습관

1. 로컬 변수 사용

전역 변수 대신 로컬 변수를 사용해 보세요. 유지 관리가 용이하고 성능이 향상되며 메모리가 절약됩니다.

모듈 네임스페이스의 변수를 지역 변수(예: ls = os.linesep)로 바꿉니다. 한편으로는 프로그램 성능을 향상시키고 지역 변수 검색을 더 빠르게 할 수 있습니다. 반면에 짧은 식별자를 사용하여 긴 모듈 변수를 대체하여 가독성을 높일 수 있습니다.

2. 함수 호출 횟수를 줄이세요

객체 유형을 판단할 때는 isinstance()를 사용하는 것이 가장 좋으며, 객체 유형 식별자(id())가 뒤따르며, 객체 값(type())은 마지막.

#判断变量num是否为整数类型
type(num) == type(0) #调用三次函数
type(num) is type(0) #身份比较
isinstance(num,(int)) #调用一次函数
로그인 후 복사

반복 작업을 피하기 위해 반복 작업 내용을 루프 조건에 매개 변수로 넣지 마십시오.

#每次循环都需要重新执行len(a)
while i < len(a):
statement
#len(a)仅执行一次
m = len(a)
while i < m:
statement
로그인 후 복사

모듈 X에서 함수나 객체 Y를 사용해야 하는 경우 import X.Y 대신 from X import Y를 직접 사용해야 합니다. 이런 방식으로 Y를 사용할 때 하나의 쿼리를 줄일 수 있습니다(인터프리터가 먼저 X 모듈을 찾은 다음 X 모듈의 사전에서 Y를 찾을 필요가 없습니다).

3. 조건 검색 대신 매핑을 사용하세요

매핑(예: dict 등)의 검색 속도는 조건문(예: if 등)보다 훨씬 빠릅니다. Python에는 select-case 문도 없습니다.

#if查找
if a == 1:
b = 10
elif a == 2:
b = 20
...
#dict查找,性能更优
d = {1:10,2:20,...}
b = d[a]
로그인 후 복사

4. 시퀀스 요소 직접 반복

시퀀스(str, list, tuple 등)의 경우 시퀀스 요소를 직접 반복하는 것이 요소 인덱스를 반복하는 것보다 빠릅니다.

a = [1,2,3]
#迭代元素
for item in a:
print(item)
#迭代索引
for i in range(len(a)):
 print(a[i])
로그인 후 복사

5. 리스트 컴프리헨션을 대체하려면 생성기 표현식을 사용하세요

리스트 컴프리헨션(list comprehension)은 전체 목록을 생성하므로 대량의 데이터 반복에 부정적인 영향을 미칩니다.

생성기 표현식은 실제로 목록을 생성하지 않지만 필요할 때 값을 생성하는(지연 계산) 생성기를 반환하므로 메모리 친화적입니다.

#计算文件f的非空字符个数
#生成器表达式
l = sum([len(word) for line in f for word in line.split()])
#列表解析
l = sum(len(word) for line in f for word in line.split())
로그인 후 복사

6. 먼저 컴파일한 후 호출

eval(), exec() 함수를 사용하여 코드를 실행할 때는 코드 객체(compile() 함수를 통해 미리 바이트코드로 컴파일)를 호출하는 것이 가장 좋습니다. str 을 직접 호출하는 대신 반복되는 컴파일 프로세스를 피하고 프로그램 성능을 향상시킬 수 있습니다.

정규식 패턴 일치도 비슷합니다. 먼저 re.complie() 함수를 통해 정규식 패턴을 정규식 개체로 컴파일한 다음 비교 및 ​​일치를 수행하는 것이 가장 좋습니다.

7. 모듈 프로그래밍 습관

모듈의 최상위 Python 문(들여쓰기가 없는 코드)은 모듈을 가져올 때 실행됩니다(실제로 실행이 필요한지 여부에 관계 없음). 따라서 메인 프로그램과 관련된 함수 코드를 포함하여 모듈의 모든 기능 코드를 함수에 넣어야 하며, 이는 main() 함수에도 배치할 수 있으며, 메인 프로그램 자체가 main() 함수를 호출합니다. .

모듈의 main() 함수에 테스트 코드를 작성할 수 있습니다. 메인 프로그램에서 name 값을 확인합니다. 'main'(모듈이 직접 실행되고 있음을 나타냄)이면 main() 함수를 호출하고 모듈 이름(모듈이 실행 중임을 나타냄)인지 테스트를 수행합니다. 호출 중) 테스트가 수행되지 않습니다.

위 내용은 Python 프로그램의 성능을 향상시키는 7가지 습관의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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