Ich werde weiterhin Inhalte für Python-Anfänger schreiben.
Einer der Gründe, warum die Verwendung von Python erweitert wurde, ist die Existenz seiner umfangreichen Bibliothek. Der Grund, warum die Verwendung der GUI und das Schreiben von Netzwerk-Apps so einfach ist, liegt eindeutig darin, dass die Python-Bibliothek umfangreich ist.
Dieses Mal werde ich erklären, wie Python geschrieben wird, um die Wiederverwendbarkeit zu verbessern, sodass das bereits geschriebene Skript als Modul verwendet werden kann.
Python ist eine Sprache mit sehr wenigen Versprechungen, Programme zu schreiben.
print "Hello World"
Es ist ein gutes Python-Programm, auch wenn Sie nur schreiben. Für die C / C ++ - Sprache müssen Sie die Hauptfunktion schreiben. Im Fall von Java müssen Sie eine Klasse erstellen und eine Methode namens public static void main (String [] args) definieren. Solche Versprechen sind beim Erlernen der Sprache unvermeidlich. Sie können die Python-Sprache mit wenigen solchen Versprechungen verwenden.
a = 1
b = 2
print a+b
Die Tatsache, dass es so beschrieben werden kann, liegt an der geringen Anzahl von Versprechungen.
Aus der Python-Sprache ist das Versprechen an den Benutzer Die meisten Objekte print Die Kennung des Objekts Dies bedeutet, dass Sie mit drucken können.
Der Punkt ist, dass Sie Zahlen, Zeichenfolgen, Listen, Taples, Wörterbücher, numpy.array-Typen, Klasseninstanzen und Objekte drucken können, die von der Python-Sprache verarbeitet werden.
Dies zwingt Benutzer der Python-Sprache nicht dazu, die C-Sprache printf ("% d", Variable vom Typ int), printf ("% f", Variable vom Typ double) usw. zu verwenden, und es besteht Raum für falsche Verwendung. Ich habe es verloren. Die Tatsache, dass Sie drucken können, egal wie komplex das Datenformat ist, macht es möglich, durch Drucken zu verstehen, selbst wenn der Rückgabewert einer Funktion, die Sie nicht verwenden können, in einem komplexen Datenformat vorliegt.
Hinweis: Auf dem Python-Interpreter
>>> a+b
3
>>>
Tun Sie es einfach und es wird das Objekt ohne Druck angezeigt.
Hinweis: print ist eine spezielle print-Anweisung, keine Funktion. Es gibt auch eine print () -Funktion, die auf die gleiche Weise verwendet werden kann. Daher denke ich, dass im Python-Quellcode, den Sie sehen, die Python 2.x-Serie tendenziell die print-Anweisung verwendet und die Python 3.x-Serie tendenziell die print () -Funktion verwendet.
Die Python-Sprache verwendet Einrückungen als Bereich der Steuerungssyntax für if, while und for-Anweisungen. Aus diesem Grund verhält sich das kopierte und eingefügte Skript anders, wenn sich der Einzug vom ursprünglichen Skript unterscheidet.
Bis ich mich daran gewöhnt habe, scheint es, dass es sich um eine abgeschnittene Libelle handelt, und ich bin möglicherweise verwirrt darüber, "Wo ist der Rest geblieben?" Ich glaube du kannst.
Wenn Sie in der Python-Sprache den Namen des Importmoduls eingeben, können Sie mit dem Modulnamen auf den Funktionen zugreifen. Funktionsname.
import cv2 img = cv2.imread("lena.jpg ") Kann gemacht werden.
Von mir selbst geschrieben myModule.py Funktion in myfunc () Wenn es gibt import myModule myModule.myfunc() Sie können Ihre eigene Bibliothek unter verwenden.
.py:modNcut.py
from skimage import data, io, segmentation, color
from skimage.future import graph
from matplotlib import pyplot as plt
def plotNcut(img):
labels1 = segmentation.slic(img, compactness=30, n_segments=400)
out1 = color.label2rgb(labels1, img, kind='avg')
g = graph.rag_mean_color(img, labels1, mode='similarity')
labels2 = graph.cut_normalized(labels1, g)
out2 = color.label2rgb(labels2, img, kind='avg')
plt.figure(1)
io.imshow(out1)
plt.figure(2)
io.imshow(out2)
io.show()
Nach dem Erstellen der Funktion In dem Verzeichnis, in dem sich diese Funktion befindet (oder wenn dieses Modul PYTHONPATH hat)
import modNcut
import cv2
img = cv2.irmread("lena.jpg ")
modNcut.plotNcut(img)
Kann verwendet werden als. Die Tatsache, dass Sie Ihre eigenen Module ohne besondere Arbeit wie Kompilieren oder Registrieren verwenden können, macht es sehr einfach, mit der Entwicklung fortzufahren. Welche Art von Spezifikationen sollte die Funktion vorgenommen werden, insbesondere, wie ihre Argumente und Rückgabewerte einfach zu verwenden sind? Es wird sehr einfach sein, es tatsächlich zu schreiben und zu überprüfen, während Sie es verwenden.
Das Fehlen von Konventionen in der Python-Sprache spiegelt sich auch darin wider, wie Module für die Installation geschrieben werden.
`if __name__ ==" __main__ ":`
.In der Python-Sprache wird der Teil, der der Hauptfunktion der C / C ++ - Sprache entspricht, im folgenden if-Anweisungsteil beschrieben. `if __name__ ==" __main__ ": Der Bereich der if-Anweisungen, die mit`
beginnen, ist der Teil, der nur ausgeführt wird, wenn die Skriptdatei als main ausgeführt wird. Wenn die Skriptdatei von der import-Anweisung aufgerufen wird, wird der Bereich der if-Anweisung, der mit `if __name__ ==" __main__ ":`
beginnt, nicht ausgeführt.
python
[__main__ - Skriptumgebung der obersten Ebene](http://docs.python.jp/2/library/__main__.html)
Python-Tutorial [Module](http://docs.python.jp/2.7/tutorial/modules.html)
### ** Implementierung des Python-Moduls **
Es gibt tatsächlich verschiedene Implementierungen des Python-Sprachmoduls. Ein Modul, das in der Python-Sprache geschrieben ist. Ein in C / C ++ geschriebenes Modul. Ein Modul, das auf der Cython-Sprache basiert. Alles
Modulname importieren
Sie können mit importieren. Alles ist üblich, z. B. eine Hilfebeschreibung mit Hilfe (Modulname.Funktionsname).
Wenn Sie Python (x, y) installiert haben,
Aus dem Startmenü
[Python(x,y)][Documentation]
"Python: Index of Modules" in [Browser öffnen] in [Python-Dokumentationsserver]
Sie können Ihren Webserver lokal starten.
Alle Python-Module sind gebräuchlich, z. B. das Auffinden von Funktions- und Klassenbeschreibungen durch Verfolgen der auf diesem Browserbildschirm verfügbaren Bibliotheken.
Nachtrag
Referenz-URL
[PyCon JP 2012 Python-Programmierung Praktische Dokumentation (Anfänger) Skriptdateien und Modularisierung](http://pyconjp2012-python-for-beginners.readthedocs.org/en/latest/script_module.html)
[1.2.5. Wiederverwendung von Code: Skripte und Module](http://www.turbare.net/transl/scipy-lecture-notes/intro/language/reusing_code.html)
[Hinweis 8 Messung der Verarbeitungszeit und Profiler](http://qiita.com/nonbiri15/items/fa9036f612183fb3d242)
Recommended Posts