Python 함수 및 모듈의 본질과 고급 기능

이 기사는 Lemony Hug가 작성한 Huawei Cloud Community " Python 함수 및 모듈의 본질과 고급 기능 " 에서 공유되었습니다 .

Python은 개발자가 복잡한 애플리케이션을 쉽게 구축할 수 있도록 하는 풍부한 기능 및 모듈 세트를 갖춘 강력한 프로그래밍 언어입니다. 이 글에서는 Python에서 함수와 모듈의 기본 사용법을 소개하고 몇 가지 코드 예제를 제공합니다.

1. 함수의 정의와 호출

함수는 특정 작업을 수행하는 재사용 가능한 코드 블록입니다. Python에서는 키워드를 사용하여 함수를 정의합니다. def 

데프 인사(이름):
    """간단한 인사말 기능입니다"""
    print("안녕하세요, " + 이름 + "!")

위는 하나의 매개변수를 사용하여 인사말을 출력하는 간단한 함수입니다. greet name

함수를 호출하려면 함수 이름과 괄호를 사용하고 인수(있는 경우)를 전달하면 됩니다.

인사("앨리스")

그러면 다음이 출력됩니다.

안녕, 앨리스!

2. 기능 매개변수

Python 함수는 여러 매개변수를 허용하고 기본 매개변수와 키워드 매개변수를 지원할 수 있습니다.

데프 추가(x, y=0):
    """이 함수는 두 개의 숫자를 더합니다"""
    x + y를 반환

위의 예에서 매개변수 는 기본값이 .인 기본 매개변수입니다 . y  0

결과 = 추가(3, 5)
print(결과) # 출력 8

result = add(3) # 두 번째 매개변수를 전달하지 않으면 기본값이 사용됩니다.
print(결과) # 출력 3

3. 모듈 가져오기 및 사용

Python 모듈은 키워드를 통해 가져올 수 있는 Python 정의 및 명령문의 모음입니다 . import 

#표준 라이브러리에서 수학 모듈 가져오기
수학 가져오기

#수학 모듈의 함수 사용
print(math.sqrt(16)) # 출력 4.0

전체 모듈을 가져오는 것 외에도 모듈 내의 특정 기능을 가져올 수도 있습니다.

#수학 모듈에서 sqrt 함수 가져오기
수학 가져오기 sqrt에서

# sqrt 함수를 직접 사용
print(sqrt(25)) # 출력 5.0

4. 맞춤형 모듈 생성

Python 표준 라이브러리에서 제공하는 모듈을 사용하는 것 외에도 사용자 정의 모듈을 만들 수도 있습니다.

간단한 함수를 정의하는 파일이 있다고 가정해 보겠습니다 . helper.py 

# helper.py

데프 더블(x):
    """주어진 숫자에 2를 곱하세요"""
    x * 2 반환

다른 Python 파일에서 이 사용자 정의 모듈을 사용하려면 간단히 가져오십시오.

#커스텀 모듈 가져오기
수입 도우미

# 모듈에서 함수 사용
print(helper.double(3)) # 출력 6

위 내용은 Python 함수 및 모듈의 기본적인 사용 방법과 코드 예시입니다. 함수와 모듈의 합리적인 사용을 통해 코드의 재사용성과 유지 관리성을 향상시켜 애플리케이션을 보다 효율적으로 개발할 수 있습니다.

5. 익명 함수(Lambda 함수)

키워드를 사용하여 함수를 정의하는 것 외에도 Python은 Lambda 함수라고도 하는 익명 함수도 지원합니다. Lambda 함수를 사용하면 한 줄의 코드로 간단한 함수를 정의할 수 있습니다. def 

# 두 숫자의 합을 계산하는 Lambda 함수를 정의합니다.
추가 = 람다 x, y: x + y

# 람다 함수 호출
결과 = 추가(3, 4)
print(결과) # 출력 7

Lambda 함수는 일반적으로 완전한 함수를 정의하지 않고 간단한 함수가 필요한 경우에 사용됩니다.

6. 내장 기능

Python은 인터프리터의 일부이며 모듈을 가져오지 않고도 직접 사용할 수 있는 많은 내장 함수를 제공합니다.

# 절대값을 구하려면 내장 함수인 abs()를 사용하세요.
print(abs(-5)) # 출력 5

# 내장 함수 len()을 사용하여 목록의 길이를 가져옵니다.
print(len([1, 2, 3, 4, 5])) # 출력 5

내장 함수를 사용하면 Python에서 일반적인 작업을 더 편리하고 효율적으로 수행할 수 있습니다.

7. 모듈형 프로그래밍의 장점

모듈형 프로그래밍은 프로그램을 특정 작업이나 기능에 초점을 맞춘 독립적인 모듈로 나누는 프로그래밍 스타일입니다. 이러한 프로그래밍 스타일에는 다음과 같은 많은 장점이 있습니다.

  • 유지 관리성 : 모듈식 코드는 각 모듈이 특정 기능에 중점을 두기 때문에 이해하고 유지 관리하기가 더 쉽습니다.
  • 재사용성 : 유사한 코드를 반복적으로 작성하지 않도록 모듈을 다른 프로젝트에서 재사용할 수 있습니다.
  • 확장성 : 변화하는 요구 사항을 충족하기 위해 필요에 따라 새 모듈을 추가하거나 기존 모듈을 교체할 수 있습니다.

함수와 모듈을 적절하게 사용함으로써 우리는 보다 모듈화되고 재사용 가능하며 유지 관리 가능한 코드를 얻을 수 있습니다.

8. 기능의 고급 기능: 데코레이터

데코레이터는 다른 함수의 동작을 수정하는 데 사용할 수 있는 특수 함수입니다. Python에서는 데코레이터를 사용하여 로깅, 프로파일링 또는 권한 확인과 같은 추가 기능을 추가하는 경우가 많습니다.

#함수 호출 로그를 기록하는 데코레이터 함수 정의
def 로그(기능):
    def 래퍼(*args, **kwargs):
        print(f"호출 함수 {func.__name__}, 매개변수: {args}, {kwargs}")
        return func(*args, **kwargs)
    반환 포장지

# 데코레이터 적용
@통나무
정의 추가(x, y):
    x + y를 반환

# 장식된 함수를 호출합니다.
결과 = 추가(3, 4)
print(결과) # 출력 7

위의 예에서 log 함수는 함수를 인수로 받아들이고 새 함수를 반환하는 데코레이터입니다 . 함수는 데코레이팅된 함수를 호출하기 전에 로그를 기록한 다음 원래 함수를 호출하고 결과를 반환합니다. wrapperwrapper 

9. 고급 기능 기능: 생성기

생성기는 값을 한 번에 모두 반환하는 것이 아니라 일련의 값을 생성하는 특수 함수입니다. 이 지연 계산은 메모리를 절약하고 성능을 향상시킵니다.

# 피보나치 수열을 생성하는 생성기 함수를 정의합니다.
데프 피보나치(n):
    가, b = 0, 1
    범위(n)의 _에 대해:
        산출하다
        a, b = b, a + b

# 생성기를 사용한다
피보나치(10)의 여부:
    print(num, end=" ") # 피보나치 수열의 처음 10개 숫자를 출력합니다.

생성기 함수는 키워드를 사용하여 값을 생성하며, 생성기의 메서드가 호출될 때마다 함수는 다음 메서드를 만날 때까지 마지막으로 일시 중지된 지점부터 실행을 계속합니다 . yield  next()  yield

10. 함수의 고급 기능: 재귀(Recursion)

재귀는 함수가 자신을 호출하는 프로그래밍 기술로, 더 작은 하위 문제로 나눌 수 있는 문제를 해결하는 데 자주 사용됩니다.

# 계승 계산을 위한 재귀 함수를 정의합니다.
def 계승(n):
    n == 0인 경우:
        1을 반환
    또 다른:
        n * 계승(n - 1)을 반환합니다.

# 재귀 함수를 사용하세요
결과 = 계승(5)
print(결과) # 출력 120

위의 예에서 factorial 함수는 계승을 계산하기 위해 자신을 호출합니다.

11. 함수형 프로그래밍

Python은 함수형 프로그래밍 패러다임을 지원합니다. 즉, 함수를 변수로, 다른 함수에 대한 인수로, 심지어 함수의 반환 값으로도 전달할 수 있습니다. 이 접근 방식을 사용하면 코드를 더 간결하고 읽기 쉽게 만들 수 있습니다.

# 목록의 각 요소를 두 배로 늘리는 함수를 정의합니다.
def double_elements(숫자):
    [숫자 단위의 숫자인 경우 num * 2]를 반환합니다.

# 목록의 각 요소에 1을 추가하는 함수를 정의합니다.
def increment_elements(nums):
    [숫자 단위의 숫자인 경우 숫자 + 1]을 반환합니다.

# 목록의 각 요소에 다른 함수를 적용하는 함수를 정의합니다.
def apply_function_to_elements(nums, func):
    [숫자 단위의 숫자에 대한 func(num)]을 반환합니다.

# 함수형 프로그래밍을 사용하세요
my_list = [1, 2, 3, 4, 5]
doubled_list = apply_function_to_elements(my_list, 람다 x: x * 2)
print(doubled_list) # 출력 [2, 4, 6, 8, 10]

incremented_list = apply_function_to_elements(my_list, 람다 x: x + 1)
print(incremented_list) # 출력 [2, 3, 4, 5, 6]

위의 예에서 apply_function_to_elements 함수는 함수를 인수로 받아들이고 목록의 각 요소에 함수를 적용합니다.

12. 함수형 프로그래밍의 장점

함수형 프로그래밍에는 다음과 같은 많은 장점이 있습니다.

  • 단순성 : 함수형 프로그래밍은 더 적은 코드로 동일한 기능을 달성하는 경우가 많습니다.
  • 가독성 : 함수형 프로그래밍은 함수의 결합과 변환을 강조하여 코드를 더 쉽게 이해할 수 있도록 합니다.
  • 불변성 : 함수형 프로그래밍의 데이터는 불변인 경우가 많습니다. 즉, 프로그램을 추론하고 디버그하기가 더 쉽습니다.
  • 병렬성 : 함수형 프로그래밍은 외부 상태를 변경하지 않으므로 병렬 처리가 더 쉬운 순수 함수를 권장합니다.

함수형 프로그래밍 패러다임을 적절하게 사용함으로써 우리는 더 명확하고 간결하며 유지 관리하기 쉬운 코드를 작성할 수 있습니다.

요약하다

이 기사에서는 Python의 함수 및 모듈 사용과 일부 고급 기능을 심층적으로 살펴봅니다. 이 글의 요약 내용은 다음과 같습니다.

  1. 함수의 기본 사용법 : 함수 정의, 매개변수 전달, 함수 호출 방법을 배웠습니다. Python의 함수는 특정 작업을 수행하는 재사용 가능한 코드 블록입니다.

  2. 함수 매개변수 : 함수가 기본 매개변수와 키워드 매개변수를 포함하여 여러 매개변수를 허용할 수 있다는 점을 소개했습니다. 이는 기능을 더욱 유연하게 만들고 다양한 사용 시나리오에 맞게 조정할 수 있습니다.

  3. 모듈 가져오기 및 사용 : Python 모듈을 가져오고 모듈에서 함수와 변수를 사용하는 방법을 배웠습니다. 모듈은 코드를 구성하고 재사용하는 데 도움이 되는 Python 프로그램의 구성 요소입니다.

  4. 함수의 고급 기능 : 데코레이터, 생성기, 재귀 및 함수형 프로그래밍을 포함한 함수의 고급 기능 중 일부를 살펴봅니다. 이러한 기능은 기능을 더욱 유연하고 강력하게 만들어 다양한 프로그래밍 요구 사항에 대처할 수 있게 해줍니다.

  5. 모듈형 프로그래밍의 장점 : 유지 관리성, 재사용성, 확장성을 포함한 모듈형 프로그래밍의 장점에 대해 논의했습니다. 함수와 모듈을 올바르게 사용하면 코드의 효율성과 품질이 향상될 수 있습니다.

이 글을 공부함으로써 여러분은 Python의 함수와 모듈의 사용에 대해 더 깊이 이해하고, 일부 고급 기능을 익히고, 실용적인 문제를 해결하기 위해 이러한 기능을 보다 유연하게 사용할 수 있습니다. 계속해서 Python 프로그래밍을 배우고 탐구하면 더욱 우아하고 효율적인 코드를 작성할 수 있습니다.

 

화웨이 클라우드의 신기술에 대해 빨리 알아보고 팔로우하려면 클릭하세요~

 

알려지지 않은 오픈 소스 프로젝트가 얼마나 많은 수익을 가져올 수 있습니까? Microsoft의 중국 AI 팀은 수백 명의 사람들을 모아 미국으로갔습니다. Huawei는 Yu Chengdong의 직업 변경이 15년 동안 "FFmpeg Pillar of Shame"에 못 박혔다 고 공식 발표했습니다. 이전에는 그랬지만 오늘은 우리에게 감사해야 합니다.— Tencent QQ Video가 과거의 굴욕을 복수한다고요? Huazhong University of Science and Technology의 오픈 소스 미러 사이트가 외부 액세스 보고를 위해 공식적으로 공개되었습니다 . Django는 여전히 74%의 개발자가 선택한 제품입니다. Zed 편집자는 유명한 오픈 소스 회사의 전직 직원이었습니다 . 소식을 전했습니다: 기술 리더는 부하 직원의 도전을 받은 후 격노하고 무례하게 행동하여 해고되었으며 임신했습니다. 여직원 Alibaba Cloud가 공식적으로 Tongyi Qianwen 2.5를 출시했습니다. Microsoft는 Rust Foundation에 100만 달러를 기부했습니다.
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/4526289/blog/11110338