파이썬 튜토리얼-함수 인자

Jinku Hu 2023년1월30일
  1. 파이썬 함수 인수
  2. 파이썬 함수 인자 타입
파이썬 튜토리얼-함수 인자

이 섹션에서는 Python 함수 인수와 기본 인수, 키워드 인수 및 임의 인수와 같은 다양한 유형을 학습합니다.

파이썬 함수 인수

함수의 인수는 함수 내에서 작업이 수행되는 값입니다.

지정된 수의 인수로 함수를 정의 할 때 지정된 수의 인수를 전달하여이 특정 함수를 호출해야합니다.

함수 정의에 지정된 것보다 많거나 적은 인수를 전달하면 TypeError 가 발생합니다.

아래 코드를 고려하십시오.

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language("Python", 1)
language("Java", 2)
Programming language 1 is: Python
Programming language 2 is: Java

함수 language에는 두 가지 인수가 있습니다. 다른 개수의 인수로 함수를 호출하면 다음과 같은 오류가 발생합니다.

>>> language('Python')

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    language('Python')
TypeError: language() takes exactly 2 arguments (1 given)

>>> language(2, 'Python', 'Java')

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    language(2, 'Python', 'Java')
TypeError: language() takes exactly 2 arguments (3 given)

파이썬 함수 인자 타입

이전 함수에는 고정 된 개수의 인수가 있습니다. 그리고 함수는 가변 인수를 가질 수도 있습니다.

변수 인수를 함수에 전달하는 세 가지 방법이 있습니다. 이제 그들 모두를 봅시다.

파이썬 함수 기본 인자

함수에서 인수는 함수 정의에 지정된 기본값을 가질 수 있습니다. 인수에 기본값이있는 경우 해당 인수에 대한 값을 전달하는 것이 ** 선택 사항 **입니다.

아래 예에서 설명합니다.

def language(p="C++", n=3):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language()
Programming language 3 is: C++

여기서는 인수가 전달되지 않지만 프로그램은 여전히 ​​잘 작동한다는 것을 알 수 있습니다. 인수의 기본값이 제공되기 때문입니다. 인수에 대한 값을 전달하면 기본값이 겹쳐 써집니다.

파이썬 함수 키워드 인수

일반적으로 함수 정의에 정의 된 것과 동일한 순서로 여러 인수를 전달합니다. 그러나 키워드 인수를 사용하면 인수의 위치를 ​​변경할 수 있습니다.

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language(p="C++", n=3)
Programming language 3 is: C++

키워드 인수를 사용하여 값을 특정 인수에 명시 적으로 할당하는 경우 인수 위치를 변경할 수도 있습니다.

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language(n=3, p="C++")
Programming language 3 is: C++

파이썬 함수 임의의 인수

몇 개의 인수를 전달해야하는지 미리 알 수없는 경우 임의의 인수가 사용됩니다.

임의 함수는 인수 이름 앞에 별표 (*)로 표시됩니다. 키워드가 아닌 인수를 함수의 튜플로 전달합니다.

def language(*args):
    """Demo function of arbitray arguments"""
    for i in args:
        print("Programming language:", i)


language("Java", "C++", "R", "Kotlin")
Programming language: Java
Programming language: C++
Programming language: R
Programming language: Kotlin

함수는 여러 인수를 전달하여 호출됩니다. 이 인수는 함수가 실제로 호출되기 전에 튜플로 변환됩니다.

이중 별표 (** kwargs)는 임의의 키워드 인수를 함수에 전달하는 관용구입니다. 예를 들어

def language(**kwargs):
    """Demo funciton of arbitrary keyword arguments"""
    for a in kwargs:
        print(a, kwargs[a])


language(country="NL", code="+31")
country NL
code +31

이 키워드의 인수는 ‘키’가 키워드이고 ‘값’이 해당 값인 사전으로 전달됩니다. 위의 예와 같이 전달 된 인수는{ 'country': "NL", 'code': "+ 31"}사전으로 변환됩니다.

작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook