Dieser Artikel ist der Artikel zum 25. Tag von Python Advent Calendar 2016. Viel Angst ist der letzte Tag !!
Normalerweise schreibe ich als Ingenieur auf der Serverseite, während ich eine Firma namens Liaro vertrete. Dies ist eine Fortsetzung von Tips②, die ich vor langer Zeit geschrieben habe, aber bitte haben Sie Verständnis dafür, dass es nicht mehr so viel ist wie zuvor, weil es auf verschiedene Arten verfolgt wird. Ich denke, dass es viele Teile gibt, die mit vage Kenntnissen geschrieben wurden. Vielen Dank für Ihre Mitarbeit!
Obwohl es sich um eine andere Sprache handelt, verfügt Python auch über Map / Filter / Reduce, das im Lambda der anonymen Funktion (Lambda-Ausdruck) bereitgestellt wird.
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 #Import reduzieren
>>> d = reduce(lambda x,y:x+y, a)
>>> d
45
>>>
Python hat eine Funktion namens Decorator, und Sie können die Methode wie "@ hoge" über dem Methodennamen erweitern (hier. ). Das Beispiel des Verbindungsziels ist gut, und ansonsten wird es ähnlich sein, ohne viel nachzudenken. Angenommen, Sie schreiben Folgendes, wenn Sie eine Funktion namens foo erweitern.
python:Python3.5.2
>>> def foo(x, y):
... return x ** y
...
>>>
>>> def hoge(func):
... def inner(x, y):
... if x == y == 0:
... return "Unbestimmt"
... return func(x, y)
... return inner
...
>>>
>>> foo = hoge(foo)
In Python kann es mit dem Symbol @
wie folgt umgeschrieben werden.
python:Python3.5.2
>>> @hoge
... def foo(x, y):
... return x ** y
...
>>>
Beispielsweise ist eine Methode in einer Klasse im Grunde eine Instanzmethode, aber das Schreiben von "@ classmethod" macht sie zu einer Klassenmethode, und das Schreiben von "@ staticmethod" macht sie zu einer statischen Methode.
Ich habe in den vorherigen Tipps den Umgang mit Argumenten in Grundfunktionen geschrieben, aber ich habe einige Notizen nicht geschrieben, deshalb möchte ich sie hier schreiben.
python:Python3.5.2
>>> def foo(x, y):
... return x ** y
...
>>> foo(y=5, x=2) #Argumente haben Vorrang vor Namensübereinstimmung vor Reihenfolge
32
>>>
>>> def hoge(a=[]):
... a.append(1)
... return a
...
>>> b = hoge()
>>> print(b)
[1]
>>> b = hoge()
>>> print(b) #Der Standardwert wird nicht bei jedem Anruf generiert
[1, 1]
Dies ist die Python-Codierungskonvention. Python hat Codierungskonventionen für die Sprache empfohlen, und ich denke, viele Python-Benutzer folgen diesen. Früher PEP8 genannt, hat es sich geändert. Grundsätzlich gibt es jedoch kein Problem, da die Leute plötzlich auf Englisch scharf wurden und PEP8 herausbrachten (PEP8). Um einige aufzuzählen ・ Einzug ist 4 Leerzeichen ・ Die Länge einer Zeile beträgt grundsätzlich 79 Zeichen
Der Inhalt ist sehr dünn, aber ich möchte noch einmal eine Fortsetzung schreiben ... Dann Frohe Weihnachten !! & Ein schönes Jahr ~~! !! !! !! !! !! !!
Klicken Sie hier für Tipps ① Klicken Sie hier für Tipps②
Recommended Posts