>  기사  >  백엔드 개발  >  Python 함수의 매개변수에 대한 간략한 분석

Python 함수의 매개변수에 대한 간략한 분석

Go语言进阶学习
Go语言进阶学习앞으로
2023-07-25 16:24:551183검색

1. 소개

Python의 함수 정의는 매우 간단하지만 유연성이 매우 큽니다. 일반적으로 정의된 필수 매개변수 외에도 기본 매개변수, 변수 매개변수 및 키워드 매개변수를 사용할 수 있으므로 함수에 의해 정의된 인터페이스는 복잡한 매개변수를 처리할 수 있을 뿐만 아니라 호출자의 코드를 단순화할 수 있습니다.


2. 변수 매개변수

Python 함수에서는 변수 매개변수를 정의할 수도 있습니다. 이름에서 알 수 있듯이 가변 매개변수는 전달된 매개변수의 수가 가변적이며 1, 2 또는 임의의 숫자일 수 있거나 0일 수 있음을 의미합니다.

사례: 계산해 주세요 a2 + b2 + c2 + ….

숫자 a, b, c...,

가 주어진 수학 문제를 예로 들어보겠습니다.

이 기능을 정의하려면 입력 매개변수를 결정해야 합니다. 매개변수의 개수가 불확실하기 때문에 처음에는 a, b, c...가 리스트나 튜플로 전달될 수 있다고 생각했습니다.

함수는 다음과 같이 정의할 수 있습니다.

def calc(numbers):   
  sum = 0    
  for n in numbers:       
    sum = sum + n * n   
  return sum

그러나 호출할 때는 먼저 목록이나 튜플을 조합해야 합니다.

print(calc([1, 2, 3]))
#结果:14
print(calc((1, 3, 5, 7))
#结果:84

Python 함수의 매개변수에 대한 간략한 분석

코드 단순화

가변 매개변수를 사용하는 경우 함수 호출 방법을 다음과 같이 단순화할 수 있습니다.

따라서 함수의 매개변수를 가변 매개변수로 변경하세요.

def calc(*numbers):    
  sum = 0    
  for n in numbers:      
    sum = sum + n * n   
    return sum

리스트 또는 튜플 매개변수를 정의하는 것과 비교 , 가변 매개변수를 정의하려면 매개변수 앞에 * 기호를 추가하기만 하면 됩니다.

함수 내부에서는 매개변수 번호가 튜플을 수신하므로 함수 코드는 전혀 변경되지 않습니다. 그러나 이 함수를 호출할 때 0개의 매개변수를 포함하여 원하는 수의 매개변수를 전달할 수 있습니다.

print(calc(1, 2))
#结果:5
print(calc())
#结果:0

Python 함수의 매개변수에 대한 간략한 분석

이미 목록이나 튜플이 있고 변수 매개변수를 호출하고 싶다면 어떻게 해야 할까요?

例:

nums = [1, 2, 3]


print(calc(nums[0], nums[1], nums[2]))

Python 함수의 매개변수에 대한 간략한 분석

这种写法当然是可行的,问题是太繁琐。

所以Python允许在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

nums = [1, 2, 3]


calc(*nums)

Python 함수의 매개변수에 대한 간략한 분석

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。


三、关键字参数

可变参数允许传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。

而关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:

def person(name, age, **kw):    
  print('name:', name, 'age:', age, 'other:', kw)

函数person除了必选参数name和age外,还接受关键字参数kw。在调用该函数时,可以只传入必选参数:

person('Michael', 30)

运行结果:

Python 함수의 매개변수에 대한 간략한 분석

也可以传入任意个数的关键字参数:

extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)

Python 함수의 매개변수에 대한 간략한 분석

关键字参数有什么用?

它可以扩展函数的功能。

比如,在person函数里,保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,也能收到。

试想正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。

extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。


4. 요약

이 글은 Python의 기본을 바탕으로 Python 함수의 매개변수를 소개합니다. Python의 함수는 간단한 호출을 구현할 수 있을 뿐만 아니라 매우 복잡한 매개변수를 전달할 수도 있는 매우 유연한 매개변수 형식을 가지고 있습니다. 공통 변수 매개변수와 키워드 매개변수가 도입되었습니다.

위 내용은 Python 함수의 매개변수에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Go语言进阶学习에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제