Python Tutorial - Argumentos sobre a função

  1. Argumentos da Função Python
  2. Tipos de Argumentos da Função Python

Nesta seção, você aprenderá argumentos da função Python e seus diferentes tipos, tais como argumentos padrão, argumentos de palavras-chave e argumentos arbitrários.

Argumentos da Função Python

Argumentos da função são os valores sobre os quais as operações são realizadas dentro da função.

Quando se define uma função com um número especificado de argumentos, é necessário chamar essa função específica, passando aquele número especificado de argumentos.

Se você passar mais ou menos argumentos do que os especificados na definição da função, você receberá um TypeError.

Considere o código abaixo:

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

A função language tem dois argumentos. E se você chamar a função com um número de argumentos diferente, você terá um erro como abaixo:

>>> 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)

Tipos de Argumentos da Função Python

A função anterior tem um número fixo de argumentos. E a função também pode ter argumentos variáveis.

Há três maneiras diferentes de passar argumentos variáveis para uma função. Agora, vamos passar por todas elas.

Argumentos Padrão da Função Python

Em uma função, os argumentos podem ter valores propostos que são atribuídos na definição da função. Se os argumentos tiverem valor proposto, então é opcional para passar valores para esses argumentos:

Isto é demonstrado no exemplo abaixo:

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

Você pode ver aqui que nenhum argumento é passado, mas o programa ainda funciona bem; porque os valores padrão para os argumentos são fornecidos. Se você passar valores para qualquer um dos argumentos, o valor padrão será sobregravado.

Argumentos da palavra-chave Função Python

Normalmente, o usuário passa vários argumentos na mesma seqüência definida na definição da função. Mas se utilizar argumentos com palavras-chave, pode alterar a posição dos argumentos.

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++

Também é possível modificar a posição dos argumentos se utilizar argumentos por palavra-chave para atribuir valores explicitamente aos argumentos específicos.

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++

Argumentos arbitrários da função Python

Argumentos arbitrários são usados quando não se sabe antecipadamente quantos argumentos devem ser passados.

Uma função arbitrária é designada por um asterisco * antes do nome do argumento. Ele passa argumentos sem palavras-chave como um tuple para a função.

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

A função é chamada passando múltiplos argumentos. Estes argumentos são convertidos em um tuple antes que a função seja realmente chamada.

O asterisco duplo **kwargs é o idioma para passar os argumentos arbitrários da palavra-chave para a função. Por exemplo, o asterisco duplo **kwargs é o idioma para passar os argumentos arbitrários das palavras-chave para a função,

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

Argumentos nesta palavra-chave argumentos arbitrários são passados como um dicionário cujas keys são palavras-chave e values são valores correspondentes. Como no exemplo acima, os argumentos passados são convertidos em um dicionário {'country': "NL", 'code': "+31"}.