Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Argumentos da função Python

Argumentos da função Python


Em Python, você pode definir uma função que recebe um número variável de argumentos. Neste artigo, você aprenderá a definir tais funções usando argumentos padrão, palavras-chave e arbitrários.

Vídeo:Argumentos da função Python:posicionais, palavras-chave e padrão

Argumentos


No tópico de função definida pelo usuário, aprendemos sobre como definir uma função e chamá-la. Caso contrário, a chamada da função resultará em um erro. Aqui está um exemplo.
def greet(name, msg):
    """This function greets to
    the person with the provided message"""
    print("Hello", name + ', ' + msg)

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

Saída
Hello Monica, Good morning!

Aqui, a função greet() tem dois parâmetros.

Como chamamos essa função com dois argumentos, ela funciona sem problemas e não recebemos nenhum erro.

Se o chamarmos com um número diferente de argumentos, o interpretador mostrará uma mensagem de erro. Abaixo está uma chamada para esta função com um e nenhum argumento junto com suas respectivas mensagens de erro.
>>> 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'

Argumentos de função variável


Até agora, as funções tinham um número fixo de argumentos. Em Python, existem outras maneiras de definir uma função que pode receber um número variável de argumentos.

Três formas diferentes deste tipo são descritas abaixo.

Argumentos padrão do Python


Os argumentos de função podem ter valores padrão em Python.

Podemos fornecer um valor padrão para um argumento usando o operador de atribuição (=). Aqui está um exemplo.
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?")

Saída
Hello Kate, Good morning!
Hello Bruce, How do you do?



Nesta função, o parâmetro name não tem um valor padrão e é obrigatório (obrigatório) durante uma chamada.

Por outro lado, o parâmetro msg tem um valor padrão de "Good morning!" . Portanto, é opcional durante uma chamada. Se um valor for fornecido, ele substituirá o valor padrão.

Qualquer número de argumentos em uma função pode ter um valor padrão. Mas uma vez que temos um argumento padrão, todos os argumentos à sua direita também devem ter valores padrão.

Isso significa dizer que argumentos não padrão não podem seguir argumentos padrão. Por exemplo, se tivéssemos definido o cabeçalho da função acima como:
def greet(msg = "Good morning!", name):

Receberíamos um erro como:
SyntaxError: non-default argument follows default argument

Argumentos de palavra-chave do Python


Quando chamamos uma função com alguns valores, esses valores são atribuídos aos argumentos de acordo com sua posição.

Por exemplo, na função acima greet() , quando o chamamos de greet("Bruce", "How do you do?") , o valor "Bruce" é atribuído ao argumento nome e da mesma forma "How do you do?" para msg .

Python permite que funções sejam chamadas usando argumentos de palavras-chave. Quando chamamos funções desta forma, a ordem (posição) dos argumentos pode ser alterada. As seguintes chamadas para a função acima são todas válidas e produzem o mesmo resultado.
# 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?")           

Como podemos ver, podemos misturar argumentos posicionais com argumentos de palavras-chave durante uma chamada de função. Mas devemos ter em mente que os argumentos de palavras-chave devem seguir os argumentos posicionais.

Ter um argumento posicional após argumentos de palavras-chave resultará em erros. Por exemplo, a chamada de função da seguinte forma:
greet(name="Bruce","How do you do?")

Resultará em um erro:
SyntaxError: non-keyword arg after keyword arg

Argumentos arbitrários do Python


Às vezes, não sabemos de antemão o número de argumentos que serão passados ​​para uma função. Python nos permite lidar com esse tipo de situação por meio de chamadas de função com um número arbitrário de argumentos.

Na definição da função, usamos um asterisco (*) antes do nome do parâmetro para denotar esse tipo de argumento. Aqui está um exemplo.
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")

Saída
Hello Monica
Hello Luke
Hello Steve
Hello John

Aqui, chamamos a função com vários argumentos. Esses argumentos são agrupados em uma tupla antes de serem passados ​​para a função. Dentro da função, usamos um for loop para recuperar todos os argumentos de volta.

python

  1. Tipos de dados Python
  2. Operadores Python
  3. Instrução de passagem do Python
  4. Função anônima/Lambda do Python
  5. Dicionário Python
  6. Geradores Python
  7. Fechamentos Python
  8. Decoradores Python
  9. Função Python String strip () com EXEMPLO
  10. Funções do Python Lambda com EXEMPLOS