Ich berühre morgens immer noch das Mac Book Pro Retina 13 Zoll mit einem Doy-Gesicht. Ich dachte, ich würde heute auch Julia machen. Zuvor schrieb ich in Qiitas Artikel, dass Python auch verwendet werden könnte.
[Persönliches Memo] Probieren Sie Julias Webanwendungs-Framework "Morsel" aus
Ich dachte, ich würde es versuchen, also werde ich es versuchen. Sie können Python-Bibliotheken mit PyCall.jl ausführen.
https://github.com/stevengj/PyCall.jl
Probieren wir es aus.
Führen Sie den folgenden Befehl von Julias REPL aus
Pkg.add("PyCall")
Das ist in Ordnung
In dem in README.md von PyCall.jl geschriebenen Beispiel Ich benutze die Mathematikbibliothek.
https://github.com/stevengj/PyCall.jl/blob/ef23e044d4870d3440a76c79d09c85a36c510d06/README.md
using PyCall
@pyimport math
math.sin(math.pi / 4) - sin(pi / 4) # returns 0.0
Ausprobieren.
using PyCall
@pyimport re
match_pattern = re.compile("Welcome to (.+\.)")
groups_of_match = pycall(match_pattern["search"], PyObject, "Welcome to underground.")["group"]
result = convert(String, pycall(groups_of_match, PyObject, 0))
match_of_group = convert(String, pycall(groups_of_match, PyObject, 1))
println("All match is [$result]")
println("Match of first regex group is [$match_of_group]")
Das Ausführungsergebnis ist wie folgt.
Dieser Code entspricht dem folgenden in Python:
import re
match_pattern = re.compile("Welcome to (.+\.)")
groups_of_match = match_pattern.search("Welcome to underground.")
result = groups_of_match.group(0)
match_of_group = groups_of_match.group(1)
print("All match is [{result}]".format(result=result))
print("Match of first regex group is [{match_of_group}]".format(
match_of_group=match_of_group)
)
Ausführungsergebnis
Laut Referenz
pycall(function::PyObject, returntype::Type, args...)
Da es im Format geschrieben ist, habe ich Folgendes für den Test der Bibliothek für reguläre Ausdrücke getan.
pycall(match_pattern["search"], PyObject, "Welcome to underground.")["group"]
PyObject gibt numerische, boole und funktionale Typen zurück. Es sieht aus wie ein bequemes Objekt. (Die Beschreibung besagt, dass PyObject der C-API verwendet wird.)
Durch Aufrufen von pycall wie oben, Die Gruppe, die dem regulären Ausdruck und der gesamten übereinstimmenden Zeichenfolge entspricht, kann verwendet werden.
match_pattern["search"]
Ist
Rufen Sie die Attribute des Objekts ab, wie in PyObject Description beschrieben. In diesem Fall rufen Sie die ** search ** -Methode des Match-Objekts für reguläre Ausdrücke auf.
convert
Beschreibung konvertieren ist in der Beschreibung von PyObject geschrieben.
convert(T, o::PyObject)
Kurz gesagt, Besetzung. Ich wollte es zu einer Art Julia machen, also Ich habe das Ergebnis des regulären Ausdrucks (PyObject) in den String-Typ von Julia umgewandelt.
convert(String, pycall(groups_of_match, PyObject, 0))
Ich könnte den PyObject-Typ leicht in den String-Typ umwandeln.
PyCall zu haben scheint eine von Julias Beschwerden zu sein. Die Anzahl der eigenen Bibliotheken von Julia ist für die eingebauten nicht sehr groß. Ich fand es gut, Python-Bibliotheksressourcen verwenden zu können ^ - ^
Recommended Posts