Não entendi porque durante o vídeo, os métodos foram escritos como:
def get(self ,request): e def post(self ,request):
e no código disponibilizado está:
def get(self ,request, *args, **kwargs): e def post(self ,request, *args, **kwargs):
Não entendi porque durante o vídeo, os métodos foram escritos como:
def get(self ,request): e def post(self ,request):
e no código disponibilizado está:
def get(self ,request, *args, **kwargs): e def post(self ,request, *args, **kwargs):
Olá Clayton!
Nesse caso não há diferença, o *args e **kwargs são opcionais, ou seja, você pode utilizar ou não.
Agora pra falar um pouco sobre suas utilizações:
ARGS
Quando temos um atributo com um asterisco na frente significa que podemos passar vários atributos como parâmetro. Por exemplo:
def titulos_copa_do_mundo(pais, *args):
print('País: ', pais))
for titulo in args:
print('Ano: ', titulo)
Assim podemos chamar o método da seguinte forma:
titulos_copa_do_mundo('Brasil', '1958', '1962', '1970', '1994', '2002')
E a saída seria:
País: Brasil
Ano: 1958
Ano: 1962
Ano: 1970
Ano: 1994
Ano: 2002
KWARGS
Já quando temos dois atributos na frente de um parâmetro significa que podemos passar diversos argumentos que podem ser opcionais. Por exemplo:
def calcular_preco(valor, **kwargs):
imposto = kwargs.get('imposto')
desconto = kwargs.get('desconto')
if imposto:
valor += valor * (imposto / 100)
if desconto:
valor -= desconto
return valor
Para calcularmos o valor normal:
preco_final = calcular_preco(1000)
print(preco_final)
//1000
Para calcularmos o valor com desconto:
preco_final = calcular_preco(1000, desconto=500)
print(preco_final)
//500
Para calcularmos o valor com imposto:
preco_final = calcular_preco(1000, imposto=50)
print(preco_final)
// 1500
Espero que tenha ajudado!
Bons estudos!
Olá Clayton!
Conseguiu sanar sua dúvida?
Caso sim, peço para que feche o tópico marcando a solução por favor.
Obrigado!