산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 함수 인수

파이썬 함수 인수

Python에서는 가변 개수의 인수를 사용하는 함수를 정의할 수 있습니다. 이 기사에서는 기본, 키워드 및 임의 인수를 사용하여 이러한 함수를 정의하는 방법을 배웁니다.

동영상:Python 함수 인수:위치, 키워드 및 기본값

인수

사용자 정의 함수 항목에서 함수를 정의하고 호출하는 방법을 배웠습니다. 그렇지 않으면 함수 호출로 인해 오류가 발생합니다. 다음은 예입니다.

def greet(name, msg):
    """This function greets to
    the person with the provided message"""
    print("Hello", name + ', ' + msg)

greet("Monica", "Good morning!")

출력

Hello Monica, Good morning!

여기서 함수 greet() 두 개의 매개변수가 있습니다.

이 함수를 두 개의 인수로 호출했기 때문에 원활하게 실행되고 오류가 발생하지 않습니다.

다른 수의 인수로 호출하면 인터프리터는 오류 메시지를 표시합니다. 다음은 각각의 오류 메시지와 함께 인수가 하나 있고 없는 이 함수에 대한 호출입니다.

>>> greet("Monica")    # only one argument
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet()    # no arguments
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'
<시간>

변수 함수 인수

지금까지 함수에는 고정된 수의 인수가 있었습니다. Python에는 다양한 인수를 사용할 수 있는 함수를 정의하는 다른 방법이 있습니다.

이 유형의 세 가지 다른 형태가 아래에 설명되어 있습니다.

Python 기본 인수

함수 인수는 Python에서 기본값을 가질 수 있습니다.

할당 연산자(=)를 사용하여 인수에 기본값을 제공할 수 있습니다. 다음은 예입니다.

def greet(name, msg="Good morning!"):
    """
    This function greets to
    the person with the
    provided message.

    If the message is not provided,
    it defaults to "Good
    morning!"
    """

    print("Hello", name + ', ' + msg)


greet("Kate")
greet("Bruce", "How do you do?")

출력

Hello Kate, Good morning!
Hello Bruce, How do you do?

이 함수에서 매개변수 name 기본값이 없으며 통화 중 필수(필수)입니다.

반면 매개변수 msg는 기본값은 "Good morning!"입니다. . 따라서 통화 중에는 선택 사항입니다. 값이 제공되면 기본값을 덮어씁니다.

함수의 모든 인수는 기본값을 가질 수 있습니다. 그러나 기본 인수가 있으면 오른쪽에 있는 모든 인수도 기본값을 가져야 합니다.

즉, 기본이 아닌 인수는 기본 인수를 따를 수 없습니다. 예를 들어 위의 함수 헤더를 다음과 같이 정의했다면:

def greet(msg = "Good morning!", name):

다음과 같은 오류가 발생합니다.

SyntaxError: non-default argument follows default argument
<시간>

Python 키워드 인수

일부 값을 사용하여 함수를 호출할 때 이러한 값은 해당 위치에 따라 인수에 할당됩니다.

예를 들어 위의 greet() 함수에서 , greet("Bruce", "How do you do?")로 호출했을 때 , 값 "Bruce" 인수 name에 할당됩니다. 유사하게 "How do you do?" msg로 .

Python에서는 키워드 인수를 사용하여 함수를 호출할 수 있습니다. 이런 식으로 함수를 호출하면 인수의 순서(위치)가 변경될 수 있습니다. 위의 함수에 대한 다음 호출은 모두 유효하며 동일한 결과를 생성합니다.

# 2 keyword arguments
greet(name = "Bruce",msg = "How do you do?")

# 2 keyword arguments (out of order)
greet(msg = "How do you do?",name = "Bruce") 

1 positional, 1 keyword argument
greet("Bruce", msg = "How do you do?")           

보시다시피, 함수 호출 중에 위치 인수와 키워드 인수를 혼합할 수 있습니다. 그러나 키워드 인수는 위치 인수를 따라야 한다는 점을 명심해야 합니다.

키워드 인수 뒤에 위치 인수가 있으면 오류가 발생합니다. 예를 들어, 다음과 같은 함수 호출:

greet(name="Bruce","How do you do?")

오류가 발생합니다:

SyntaxError: non-keyword arg after keyword arg
<시간>

Python 임의 인수

때때로 우리는 함수에 전달될 인수의 수를 미리 알지 못합니다. Python을 사용하면 임의의 수의 인수로 함수 호출을 통해 이러한 상황을 처리할 수 있습니다.

함수 정의에서 이러한 종류의 인수를 나타내기 위해 매개변수 이름 앞에 별표(*)를 사용합니다. 다음은 예입니다.

def greet(*names):
    """This function greets all
    the person in the names tuple."""

    # names is a tuple with arguments
    for name in names:
        print("Hello", name)


greet("Monica", "Luke", "Steve", "John")

출력

Hello Monica
Hello Luke
Hello Steve
Hello John

여기에서 여러 인수를 사용하여 함수를 호출했습니다. 이러한 인수는 함수에 전달되기 전에 튜플로 래핑됩니다. 함수 내에서 for을 사용합니다. 모든 인수를 다시 검색하는 루프.


python

  1. 파이썬 데이터 유형
  2. 파이썬 연산자
  3. 파이썬 통과 문
  4. Python 익명/람다 함수
  5. 파이썬 사전
  6. 파이썬 생성기
  7. 파이썬 클로저
  8. 파이썬 데코레이터
  9. EXAMPLE이 있는 Python String strip() 함수
  10. 예제가 있는 Python Lambda 함수