Python의 위치 인수 대 키워드 인수

Aditya Raj 2023년1월30일
  1. 파이썬에서 인수란 무엇입니까?
  2. Python에서 위치 인수란 무엇입니까?
  3. 파이썬에서 키워드 인수란 무엇입니까?
  4. 위치 인수 대 키워드 인수: 무엇을 사용해야 합니까?
  5. 결론
Python의 위치 인수 대 키워드 인수

Python에서 함수를 호출하는 동안 입력 값을 전달해야 하는 경우가 많습니다. 이 기사에서는 Python의 위치 인수와 키워드 인수에 대해 설명합니다. 우리는 위치 인수 대 키워드 인수에 대한 논의도 할 것이며, 여기서 우리는 파이썬에서 함수에 대한 입력을 제공하기 위해 이 두 접근 방식의 장단점을 논의할 것입니다.

파이썬에서 인수란 무엇입니까?

인수를 이해하기 위해 사람의 name, identity_number, age, weight 4개의 값을 가져와 출력하는 함수 printDetails()를 선언해 보겠습니다.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)

여기서 name, identity_number, age, weightprintDetails() 함수의 매개변수라고 합니다. 따라서 매개변수는 함수의 서명/선언의 일부라고 말할 수 있습니다.

이제 name- Aditya, identity_number- TM2017001, age- 23weight- 65를 사용하여 printDetails() 함수를 다음과 같이 호출한다고 가정합니다. 입력. 우리는 다음과 같이 할 수 있습니다.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", 23, 65)

출력:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

여기서 Aditya, TM2017001, 23, 65printDetails() 함수의 인수입니다. 기능 실행 시 Aditya 값은 name 매개변수에, TM2017001 값은 identity_number 매개변수에, 23은 매개변수 age에, 65는 매개 변수 weight에 할당된다. 그러므로 인수는 함수에 전달되는 값이고 매개변수는 인수가 할당된 함수에서 선언된 변수라고 할 수 있다.

매개변수에 인수를 할당하려면 함수에서 매개변수가 선언된 순서대로 값을 전달할 수 있습니다. 또는 매개변수에 인수를 직접 할당할 수도 있습니다. 이를 기반으로 Python의 인수는 위치 인수와 키워드 인수로 분류됩니다. 하나씩 논의해 보겠습니다.

Python에서 위치 인수란 무엇입니까?

함수에 인수를 직접 전달하고 위치에 따라 매개변수에 할당되면 위치 인수라고 합니다. 예를 들어 다음과 같이 Aditya, TM2017001, 2365 값을 사용하여 printDetails() 함수를 호출할 때

printDetails("Aditya", "TM2017001", 23, 65)

모든 입력 인수는 함수 호출에서의 위치와 함수 선언에서의 매개변수 위치에 따라 매개변수에 할당됩니다. 이것을 더 잘 이해할 수 있도록 함수 호출과 함수 선언을 함께 작성해 보겠습니다.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", 23, 65)

출력:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

여기에서 printDetails() 함수에 name, identity_number, age, weight 순서로 매개변수가 있음을 알 수 있습니다. 따라서 Adityaname에 할당되고 TM2017001identity_number에 할당되고 23age에 할당되고 65weight에 할당됩니다.

파이썬에서 키워드 인수란 무엇입니까?

함수에서 값만 전달하는 대신 다음과 같이 매개변수에 직접 할당할 수 있습니다.

printDetails(name="Aditya", identity_number="TM2017001", age=23, weight=65)

여기에서 각 매개변수는 키처럼 작동하고 각 인수는 값으로 작동합니다. 따라서 인수를 키워드 인수라고 합니다. 실행 시 함수는 위치 인수와 동일한 방식으로 작동합니다. 다음 예에서 이를 관찰할 수 있습니다.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(name="Aditya", identity_number="TM2017001", age=23, weight=65)

출력:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

위치 인수 대 키워드 인수: 무엇을 사용해야 합니까?

실행에 대해 이야기하면 위치 인수와 키워드 인수는 모두 동일한 효율성을 갖습니다. 이러한 접근 방식의 선택은 사용자의 편의에 따라 다릅니다.

위치 인수를 사용하는 동안 입력 인수의 위치를 ​​변경하면 원치 않는 결과가 발생할 수 있습니다. 예를 들어 다음 예를 보십시오.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(65, "TM2017001", 23, "Aditya")

출력:

Name is: 65
Identity Number is: TM2017001
Age is: 23
Weight is: Aditya

여기에서 65name 매개변수에 지정되었고 Aditya는 매개변수 weight에 지정되었습니다. 따라서 함수 선언에서 해당 매개변수가 정의된 순서대로 위치 인수를 전달하는 것이 중요합니다.

반면에 키워드 인수를 사용하는 동안에는 임의의 순서로 인수를 전달할 수 있습니다. 함수의 출력에는 영향을 미치지 않습니다. 다음 예에서 이를 관찰할 수 있습니다.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(weight=65, identity_number="TM2017001", age=23, name="Aditya")

출력:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

따라서 인수의 위치 변경으로 인해 발생할 수 있는 오류를 방지하려면 키워드 인수를 사용하는 것이 좋습니다.

다음 프로그램과 같이 단일 함수 호출에서 위치 및 키워드 인수를 사용할 수도 있습니다.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", age=23, weight=65)

출력:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

여기에서 해당 매개변수가 정의된 동일한 위치에서 위치 인수가 함수에 전달되는 것을 관찰할 수 있습니다. 그에 비해 키워드 인수는 어떤 순서로든 전달할 수 있습니다. 또한 키워드 인수를 전달한 후에는 위치 인수를 전달할 수 없습니다.

키워드 인수를 전달하면 나머지 모든 인수는 키워드 인수로 전달되어야 합니다. 그렇지 않으면 다음 예제에서 볼 수 있듯이 프로그램에서 오류가 발생합니다.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", identity_number="TM2017001", 23, weight=65)

출력:

  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 8
    printDetails("Aditya", identity_number="TM2017001", 23, weight=65)
                                                        ^
SyntaxError: positional argument follows keyword argument

따라서 편의에 따라 동일한 함수 호출에서 위치 인수 또는 키워드 인수 또는 둘 다를 선택할 수 있습니다.

결론

이 기사에서는 Python에서 위치 인수와 키워드 인수를 공부했습니다. 우리는 또한 위치 인수 대 키워드 인수에 대해 논의했고 두 접근 방식이 실행 효율성 측면에서 동일하다는 결론을 내렸습니다. 단일 함수 호출에서 함께 사용할 수도 있습니다. 키워드 인수 뒤에 위치 인수를 사용할 수 없다는 점을 명심하십시오.

작가: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

관련 문장 - Python Function

관련 문장 - Python Argument