Cet article est l'article du 25ème jour du Calendrier de l'Avent Python 2016. Beaucoup de peur est le dernier jour !!
J'écris habituellement côté serveur en tant qu'ingénieur tout en représentant une société appelée Liaro. Ceci est une continuation de Tips② que j'ai écrit il y a longtemps, mais comprenez bien que ce n'est pas autant qu'avant car il est poursuivi de différentes manières. Je pense qu'il y a beaucoup de parties écrites avec des connaissances vagues, alors merci pour votre coopération!
Bien que ce soit un autre langage, Python a également map / filter / reduction, qui est fourni dans le lambda de la fonction anonyme (expression lambda).
python:Python3.5.2
>>> f = lambda x:x**2
>>> f(3)
9
>>>
>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b = map(lambda x:x*x, a)
>>> b = map(lambda x:x*x, a)
>>> for i in b:
... print(i)
...
0
1
4
9
16
25
36
49
64
81
>>> c = filter(lambda x:x%2==0, a)
>>> for i in c:
... print(i)
...
0
2
4
6
8
>>> from functools import reduce #importer réduire
>>> d = reduce(lambda x,y:x+y, a)
>>> d
45
>>>
Python a une fonction appelée decorator, et vous pouvez étendre la méthode comme @ hoge
au-dessus du nom de la méthode (here est détaillé. ).
L'exemple de la destination du lien est bon, et à part ça, ce sera similaire sans trop réfléchir,
Supposons que vous écriviez ce qui suit lors de l'extension d'une fonction appelée foo.
python:Python3.5.2
>>> def foo(x, y):
... return x ** y
...
>>>
>>> def hoge(func):
... def inner(x, y):
... if x == y == 0:
... return "Indéfini"
... return func(x, y)
... return inner
...
>>>
>>> foo = hoge(foo)
En Python, il peut être réécrit comme suit en utilisant le symbole «@».
python:Python3.5.2
>>> @hoge
... def foo(x, y):
... return x ** y
...
>>>
Par exemple, une méthode dans une classe est essentiellement une méthode d'instance, mais écrire «@ classmethod» en fait une méthode de classe, et écrire «@ staticmethod» en fait une méthode statique.
J'ai écrit la gestion des arguments dans les fonctions de base dans les conseils précédents, mais je n'ai pas écrit quelques notes, donc j'aimerais l'écrire ici.
python:Python3.5.2
>>> def foo(x, y):
... return x ** y
...
>>> foo(y=5, x=2) #Les arguments ont priorité sur la correspondance de nom sur l'ordre
32
>>>
>>> def hoge(a=[]):
... a.append(1)
... return a
...
>>> b = hoge()
>>> print(b)
[1]
>>> b = hoge()
>>> print(b) #La valeur par défaut n'est pas générée à chaque appel
[1, 1]
C'est la convention de codage Python. Python a recommandé des conventions de codage pour le langage et je pense que de nombreux utilisateurs de Python les suivent. Anciennement appelé PEP8, il a changé. Cependant, il n'y a fondamentalement aucun problème car les gens sont soudainement devenus épicés en anglais et sont sortis avec PEP8 (PEP8) Pour en énumérer ・ Le retrait est de 4 espaces ・ La longueur d'une ligne est essentiellement de 79 caractères -Écrire les variables et les fonctions en minuscules (snake) et les noms de classe en camel ・ L'importation sépare les lignes Etc. Je pense que vous devriez le lire une fois!
Le contenu est très fin, mais je veux réécrire une suite ... Alors Joyeux Noël !! & Bonne année ~~! !! !! !! !! !! !!
Cliquez ici pour obtenir des conseils ① Cliquez ici pour obtenir des conseils②
Recommended Posts