Aprendizagem de gramática básica do Python - função


prefácio

Continuando com o estudo desta semana,


1. Função

A definição da função pode conter vários parâmetros formais, portanto, a chamada da função também pode conter vários parâmetros reais. Existem muitas maneiras de passar parâmetros reais para a função: parâmetros reais posicionais podem ser usados ​​e parâmetros reais de palavra-chave também podem ser usados.

1. Argumentos posicionais

Com base na ordem dos parâmetros reais, associe-os aos parâmetros formais.

def describe_pet(animal_type,pet_name):
    print("I have a {animal_type}.".format(animal_type = animal_type))
    print("My {animal_type} name is {pet_name}".format(animal_type = animal_type,pet_name = pet_name))

    
describe_pet('harry','hamster')

Neste exemplo, o primeiro parâmetro real 'harry'é passado para animal_typeo parâmetro formal.

2. Argumentos de palavra-chave

describe_pet(animal_type = 'harry',pet_name = 'hamster')

Ele indica claramente para qual parâmetro formal passar o parâmetro real. A ordem é irrelevante.

3. Valor padrão

Você pode atribuir um valor padrão a um parâmetro formal ao definir uma função e será o valor padrão se você não atribuir um valor ao parâmetro formal ao chamá-lo. Ao definir, os parâmetros formais com valores padrão devem ser escritos após os parâmetros formais sem valores padrão, para ainda poder interpretar os argumentos posicionais corretamente.

4. Torne os argumentos opcionais

Às vezes, podemos ou não precisar de um parâmetro formal em uma função. Ao chamar, para garantir que a função possa ser executada normalmente, defina o valor padrão desse parâmetro formal para o final, para que, ao chamar , se não ‘ ’houver parâmetro real, seu valor padrão é vazio, se houver este parâmetro real, especifique seu valor.

5. Passe a lista para a função

Se passarmos uma lista para a função e modificarmos a lista na função, a lista de parâmetros atuais também será modificada (entendida como passar o endereço da lista), por
exemplo

a = [1,2,3,4]
def list_a(a):
    a.pop()

list_a(a)
a
[1, 2, 3]

Pode-se ver que o último elemento da lista a é deletado na função.Depois que a função é chamada, a lista a muda fora da função.
Se quisermos alterar a lista apenas dentro da função, mas a lista real a não mudar, como devemos fazer isso?
Uma cópia da lista a pode ser passada. Do seguinte modo

a = [1,2,3,4]
list_a(a[:])
a
[1, 2, 3, 4]

6. Passe qualquer número de argumentos

Se você não sabe quantos parâmetros a função precisa aceitar, você pode definir apenas um parâmetro formal ao definir a função.
Por exemplo

def deng(*x):
    print(x)

deng(1)
(1,)
deng(1,2,3,4)
(1, 2, 3, 4)

Como você pode ver, adicione um número antes do parâmetro formal *, que pode aceitar qualquer número de parâmetros reais e converta todos os parâmetros reais em uma tupla.

Observe que, se houver outros argumentos posicionais ou palavras-chave, precisamos *argscolocá-los após os outros parâmetros formais.

7. Passe qualquer número de argumentos de palavra-chave

Se quisermos aceitar qualquer número de argumentos, mas não sabemos que tipo de informação é passada para a função. As funções podem ser escritas para aceitar qualquer número de pares chave-valor.
Os exemplos são os seguintes:

def build_profile(first_name,last_name,**user_name):
    user_name['first_name'] = first_name
    user_name['last_name'] = last_name
    return user_name

user_profile = build_profile('deng','chao',location = 'princeton',field = 'physics')

print(user_profile)
{
    
    'location': 'princeton', 'field': 'physics', 'first_name': 'deng', 'last_name': 'chao'}

Ao definir a função, adicionei dois antes do parâmetro formal user_name **.A função deste é armazenar os parâmetros subseqüentes no dicionário user_name na forma de pares chave-valor, e este dicionário também pode ser acessado dentro da função.user_name.

Acho que você gosta

Origin blog.csdn.net/weixin_47250738/article/details/130598439
Recomendado
Clasificación