Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus

Die Python-Ausgabe ist in Haxe 3.2 verfügbar. Probieren wir es also aus.

Installation

Installation von Haxe 3.2

Laden Sie die neueste Version von der offiziellen Haxe Downloads herunter und installieren Sie sie.

Wenn Sie Homebrew auf Ihrem Mac verwenden, ist Folgendes ebenfalls in Ordnung.

$ brew install haxe --HEAD

Alternativ können Sie Building Haxe lesen und selbst erstellen.

Python 3.x installieren

Ausgelassen, weil es viele andere Artikel gibt. Im Moment scheint Haxe nur Python3 ausgeben zu können.

Haxe / Python-Tutorial

Hello World

Versuchen wir die Python-Ausgabe mit Official Hello World.

Erstellen Sie zunächst HelloWorld.hx mit den folgenden Inhalten.

HelloWorld.hx


class HelloWorld {
    static public function main() {
        trace("Hello World");
    }
}

Kompilieren Sie das Obige mit haxe in helloworld.py.

$ haxe -main HelloWorld -python helloworld.py

Die Option -main ist die Hauptklasse, und die Option -python ist der Dateiname, der durch Angabe von Python ausgegeben werden soll. Weitere Informationen finden Sie unter Compiler-Verwendung.

Alternativ können Sie compile.hxml wie unten gezeigt erstellen und kompilieren.

compile.hxml


-python helloworld.py
-main HelloWorld
$ haxe comple.hxml
#Haxe oben-main HelloWorld -python helloworld.Hallo Welt wie Py.py wird ausgegeben

Wenn die Kompilierung erfolgreich ist, führen Sie die Ausgabe helloworld.py aus.

$ python3 helloworld.py
Hello World

Hello World wurde sicher ausgegeben.

Darüber hinaus war die Ausgabe von helloworld.py zu diesem Zeitpunkt wie folgt.

helloworld.py


class HelloWorld:

	@staticmethod
	def main():
		print("Hello World")



HelloWorld.main()

Befehlszeilenargumente abrufen

Sie können die Befehlszeilenargumente von Sys.args abrufen.

Main.hx


class Main {
  static public function main():Void {
    var args = Sys.args();
    for (arg in args) {
      Sys.println(arg);
    }
  }
}

Drucken Sie eine Liste der Befehlszeilenargumente mit [Sys.println](](http://api.haxe.org/Sys.html).

$ haxe -main Main -python main.py
$ python3 main.py foo
foo
$ python3 main.py foo bar
foo
bar

Zu diesem Zeitpunkt hatte die Ausgabe main.py 378 Zeilen. (lange!) Wahrscheinlich, weil ich angefangen habe, Sys zu verwenden, und es enthält einige Extras. Es wäre jedoch interessant, die Ausgabe Python zu lesen.

Dateiausgabe

Versuchen Sie, die Datei mit [sys.io.File] auszugeben (http://api.haxe.org/sys/io/File.html).

Main.hx


import sys.io.File;

class Main {
  static public function main():Void {
    var output = File.write("output.txt");
    output.writeString("test\n");
    output.close();
  }
}
$ haxe -main Main -python main.py
$ python3 main.py
$ cat output.txt
test

Bei der Ausgabe einer Datei mit Codecs

Wenn Sie python.lib.Codecs für die Dateiausgabe verwenden, entspricht dies Python-Codecs.

Main.hx


import python.lib.Codecs;

class Main {
  static public function main():Void {
    var file = Codecs.open("output.txt", "w");
    file.write("test\n");
  }
}
$ haxe -main Main -python main.py
$ python3 main.py
$ cat output.txt
test

Ich werde es hier nicht schreiben, weil es lang ist, aber wenn Sie die eigentliche Ausgabe main.py lesen, können Sie sehen, dass es codecs.open verwendet.

Natürlich kann python.lib.Codecs nur bei der Ausgabe von Python verwendet werden. Seien Sie also vorsichtig. (Sys.io.File kann für andere Plattformen wie C ++, PHP, Neko kompiliert werden.)

Verwenden Sie die Bibliothek mit Haxe / Python

Rufen Sie die Standard-Python-Bibliothek auf

Einige der Standardbibliotheken von Python sind weiterhin verfügbar, wie im Fall der Verwendung der obigen Codecs. Aus Problem Nr. 2924 geht hervor, dass ein Teil von sys.net und die gesamte sys.db nicht implementiert wurden (wird in Kürze implementiert). Sie können die verfügbaren im python.lib-Paket überprüfen.

Python-Ausgabe mit der Haxe-Bibliothek

Es gibt eine von Haxe implementierte HTML-Parser-Bibliothek namens HtmlParser. Da es sich um eine (wahrscheinlich reine) Haxe-Implementierung handelt, sollte sie auf jeder von Haxe unterstützten Plattform ausgegeben werden können. Ja, natürlich in Python!

Deshalb werde ich die Haxe-Bibliothek installieren und verwenden.

$ haxelib install HtmlParser

Main.hx


import sys.io.File;

import htmlparser.HtmlDocument;

class Main {
  static public function main():Void {
    var html = new HtmlDocument(File.getContent("example.html"));
    var titles = html.find(">html>head>title");
    trace(titles[0].innerHTML);
  }
}

Geben Sie bei Verwendung einer Bibliothek die Bibliothek an, die beim Kompilieren mit der Option -lib verwendet werden soll.

$ haxe -main Main -python main.py -lib HtmlParser

example.html


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Title of Example</title>
  </head>
  <body>
    <h1>Example</h1>
  </body>
</html>
$ python3 main.py
Title of Example

Sie können sehen, dass Sie den HTML-Code analysieren und den Titel abrufen können.

Mit anderen Worten, jede (reine) Haxe-Implementierungsbibliothek kann für Python verwendet werden, und dieselbe Bibliothek kann für andere Plattformen verwendet werden. tolle! (Natürlich gibt es in Python bereits eine Reihe hervorragender Bibliotheken für HTML-Parser ...)

Probleme

Recommended Posts

Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Versuchen Sie es mit Python.
Versuchen Sie, Python mit Try Jupyter auszuführen
Versuchen Sie die Gesichtserkennung mit Python
Versuchen Sie Python
Versuchen Sie es mit Python + Beautiful Soup
Versuchen Sie die Singularwertzerlegung mit Python
Ausgabe in eine CSV-Datei mit Python
Eingabe / Ausgabe mit Python (Python-Lernnotiz ⑤)
[Hinweis] Hallo Weltausgabe mit Python
Unit Test Log Ausgabe mit Python
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Versuchen Sie die Frequenzsteuerungssimulation mit Python
Versuchen Sie, Audio mit M5 STACK auszugeben
FizzBuzz in Python3
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Scraping mit Python
Versuchen Sie, sich mit Python bei qiita anzumelden
Statistik mit Python
Scraping mit Python
Geben Sie Farbzeichen mit Python zu hübsch aus
Python mit Go
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Python-Lernausgabe
Python-Protokoll mit GAE an die Konsole ausgeben
Twilio mit Python
In Python integrieren
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Spielen Sie mit 2016-Python
Python> try: / außer:
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
UnicodeEncodeError hat Probleme mit der Standardausgabe von Python3
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
Bingo mit Python
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
Zundokokiyoshi mit Python
Versuchen Sie, eine Karte mit Python + Cartopy 0.18.0 zu zeichnen
[Fortsetzung] Versuchen Sie den Zugriff auf das SPS-Register mit Python
Versuchen Sie, Python: Lambda zuzuweisen oder zu wechseln
Excel mit Python
[Für Anfänger] Versuchen Sie Web Scraping mit Python
Mikrocomputer mit Python
Mit Python besetzen
nginxparser: Versuchen Sie, die nginx-Konfigurationsdatei mit Python zu analysieren
3,14 π Tag, versuchen Sie also, in Python auszugeben
Probieren Sie es mit Word Cloud Japanese Python JupyterLab.
Lesen Sie JSON mit Python und geben Sie CSV aus
Versuchen Sie, Google Chrome mit Python und Selenium auszuführen
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Python-Protokoll wird nicht mit Docker-Compose ausgegeben
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Ich habe versucht, LLVM IR mit Python auszugeben
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Versuchen Sie, mit Mongo in Python auf dem Mac zu arbeiten
[Python3] [Ubuntu16] [Docker] Versuchen Sie die Gesichtserkennung mit OpenFace
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.