Novos operadores Python!
1º de abril de 2023
Muito se tem falado sobre o novo “operador morsa” no Python 3.8, escrito como :=. Este post apresenta alguns operadores com nomes extravagantes menos conhecidos. Eles não estão disponíveis apenas no Python 3.8, mas também estão automaticamente disponíveis nas versões anteriores do Python, a partir de hoje, 1º de abril de 2023!
Operador de chapéu de esqui
O operador “chapéu de esqui”, escrito como *=0, pode ser usado para esvaziar uma variável, seja uma lista, string, tupla ou valor numérico. Por exemplo, depois de executar o código a seguir, itemshaverá uma lista vazia.
items = [1, 2, 3]
items *=0
Ski Hat Operator *=0
O “operador haltere”, escrito como [:]=[], também pode ser usado para esvaziar uma lista, mas não é tão versátil quanto o operador chapéu de esqui, pois funciona apenas para listas (e alguns outros tipos menos usados). Após o código a seguir, itemshaverá uma lista vazia:
items = [1, 2, 3]
items [:]=[]
Dumbbell Operator [:]=[]
O operador “lapping cat” ou “one and only”, escrito como ,=, escolhe o primeiro elemento de um iterável e afirma que o iterável tem exatamente um elemento. Após o código a seguir, firsté 1.
first ,= [1]
Lapping Cat Operator ,=
Os fãs de matemática ficarão satisfeitos em saber que o operador fatorial unário, escrito como, por exemplo, 3!, foi parcialmente incorporado ao Python. Infelizmente, a implementação está incompleta. Mas todos os testes de unidade a seguir passam, então isso é bom o suficiente, certo?
assert 0!=1
assert 3!=6
assert 4!=24
assert 5!=120
assert 6!=720
assert 9!=362,880
Python também permite que você use a palavra-chave abstractpara indicar que um método de uma classe abstrata deve ser implementado em uma subclasse para qualquer objeto instanciado. No código a seguir, o método nameé definido como abstract, portanto, uma chamada a um objeto da classe resulta em uma mensagem de erro apontando que o método não está definido.
class AnAbstractClass:
def name(self):
abstract
>>> AnAbstractClass().name()
NameError: name 'abstract' is not defined
O leitor astuto reconhecerá que esses novos operadores, conforme os apresentei, dependem da colocação (ou falta de colocação) de espaços de uma forma que viola o PEP 8 . A isso eu digo: mas meu jeito é mais divertido! Especialmente hoje, 1º de abril. Para mais operadores, incluindo implementações dos operadores ++e <<de C++, veja meu antigo post .
PS: Tudo neste post é verdade, exceto “isso é bom o suficiente, certo?”
Artigos desta série
1º de abril de 2016: Vá, cachorro. Gauguin! A história de PD Eastman
1º de abril de 2017: Últimos tweets do Krell
1º de abril de 2018: Estilos de vida funcionais
1º de abril de 2020: Espero incorporar antes de envelhecer
1º de abril de 2021: Hamilton: o musical matemático
1º de abril de 2023: Patente de troca de pacotes revelada!
1º de abril de 2023: novos operadores Python!





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)