Python의 다양한 함수 매개변수 개념 해석(위치 매개변수, 기본 매개변수, 변수 매개변수, 키워드 매개변수, 명명된 키워드 매개변수)

Python의 다양한 함수 매개변수 개념 해석(위치 매개변수, 기본 매개변수, 변수 매개변수, 키워드 매개변수, 명명된 키워드 매개변수, 명명된 위치 매개변수)

python 函数参数다음은 관련 지식에 대한 최근 검토의 몇 가지 개념과 예 입니다 . 시스템 학습 내용은 Liao Xuefeng 선생님의 노트를 참조하세요 .

1. 예시

함수를 정의할 때 함수의 매개변수를 정의해야 하는 경우가 많습니다. 때로는 다양한 함수 매개변수의 기능을 이해하지 못할 수도 있습니다. 다음은 간단한 예입니다.

def func(a, b=1, *args, **kwargs):
	print(a)
	print(b)
	print(args)
	print(kwargs)

위의 예에서,

  • a는 기본 매개변수에 속합니다.
  • b는 위치 매개변수입니다.
  • args와 kwargs는 모두 가변 매개변수입니다. 차이점에 대해서는 나중에 논의하겠습니다.

2. 다양한 매개변수 카테고리

1. 위치 매개변수

다음 예와 같이 Python에서 순차적으로 전달되는 매개변수입니다.

def add(a, b):
	return a + b

구현하다:

print(add(5, 10))

결과:

15

add우리가 함수를 정의할 때 두 개의 매개변수인 a와 b는 순서대로 매개변수를 받아들이고 a와 b에 값을 할당하는데, 이런 유형의 매개변수가 가장 일반적이다.

2. 기본 매개변수

Python에서 기본값을 설정하고 매번 이 매개변수를 전달하고 싶지 않은 경우 다음 예와 같이 기본 매개변수를 사용할 수 있습니다.

def power(a, n=2):
	print(a ** n)

구현하다:

power(2)
power(2, 2)
power(2, 10)

결과:

4
4
1024

함수를 정의하고 powera^n을 찾을 때 a^2를 더 자주 사용하고 싶으면 n을 기본 매개변수로 설정할 수 있습니다. 매개변수를 전달할 때 n=2가 기본적으로 사용됩니다. 물론 두 개의 매개변수를 입력하면 n이 위치에 따라 변경됩니다.

기본 매개변수를 올바르게 사용하면 함수에 전달되는 매개변수의 복잡성을 줄일 수 있습니다.

알아채다:

  1. 필수 매개변수는 기본 매개변수보다 앞에 와야 합니다.
  2. 먼저 큰 변화가 있는 매개변수를 정의해 보십시오.

3. 가변 매개변수

python의 경우 输入参数的个数是可变的이때 변수 매개변수를 사용해야 합니다. 예를 들어 add를 계산할 때 전달하려는 매개변수 수를 모르는 경우 변수 매개변수를 사용할 수 있습니다.

def add(*nums):
	print(nums)
	print(sum(nums))

구현하다:

add(2, 3)
add(2, 2, 2)
add()

결과:

(2, 3)
5
(2, 2, 2)
6
()
0

함수를 실행하면 add*nums는 들어오는 매개변수를 순서대로 튜플로 조합한 다음 우리가 사용할 수 있도록 제공합니다.

여기서 문제가 되는데, 매개변수 자체가 리스트나 튜플인 경우 어떻게 전달해야 할까요? 이때 *nums를 사용하여 다음과 같이 전달할 수 있습니다.

nums = [1,2,3]
add(*nums)

이 경우 nums 목록의 세 숫자 1, 2, 3이 전달된 후 튜플로 사용됩니다.

4. 키워드 매개변수

변수 매개변수 외에도 필수 변수 매개변수 외에도 일부 비필수 매개변수가 필요할 수도 있습니다. 키워드 매개변수를 사용하면 원하는 수의 매개변수가 허용됩니다. 함수를 호출할 때 组装成一个dict:

def example(a, b, **kw):
	print(name, age, kw)

구현하다:

example('123', 20, c=0, d=1)

결과:

123 20 {
    
    'c': 0, 'd': 1}

참고:
키워드 매개변수는 전달되는 매개변수의 수에 제한이 없다는 것을 알 수 있습니다. 키-값 형식의 외부 매개변수는 kw에 복사되지만 외부 변수는 영향을 받지 않습니다.

5. 명명된 키워드 매개변수

가끔 키워드 매개변수를 전달하는 것을 허용하지만, 부주의하게 전달되는 것을 원하지 않는 경우가 있는데, 이때 어떤 것이 인지 제한해야 합니다. 可以接收的关键字参数주요 사용법은 다음과 같습니다.

#eg1
def get(name, age, *, city, job):
    print(name, age, city, job)
#eg2
def get(name, age, *args, city, job):
    print(name, age, args, city, job)
#eg3 
def get(name, age, *, city='XA', job):
	print(name, age, city, job)
  • 예 1: 위치 매개변수 뒤에 *를 추가할 수 있으며 나머지는 명명된 키워드 매개변수로 간주됩니다.
  • 예 2: 매개변수에 가변 매개변수가 있는 경우 분할을 위해 *를 추가할 필요가 없습니다.
  • 예 3: 명명된 키워드 매개변수는 생략될 수 있습니다.

알아채다:

  1. 명명된 키워드는 기본 매개변수가 아닌 한 매개변수 이름에 전달되어야 합니다. 예를 들어 위의 예 2에서 명명된 키워드 매개변수를 전달하려면 city='xxx'를 사용해야 하며, 그렇지 않으면 오류가 보고됩니다.
  2. *가 누락된 경우 명명된 키워드 인수는 위치 인수로 처리됩니다.

3. 요약

위의 설명과 실습을 통해 우리는 많은 경우 다음 형식을 사용하여 무제한의 변수 매개변수와 명명된 키워드 매개변수로 구성된 함수를 설명할 수 있음을 알 수 있습니다.

func(*args, **kwargs)

Je suppose que tu aimes

Origine blog.csdn.net/qq_36306288/article/details/128117566
conseillé
Classement