Re: [Python-de] python-de Nachrichtensammlung, Band 63, Eintrag 5

python-de-request@python.net schrieb:
Um E-Mails an die Liste python-de zu schicken, nutzen Sie bitte die Adresse
python-de@python.net
Um sich via Web von der Liste zu entfernen oder draufzusetzen:
http://python.net/mailman/listinfo/python-de
oder, via E-Mail, schicken Sie eine E-Mail mit dem Wort 'help' in Subject/Betreff oder im Text an
python-de-request@python.net
Sie koennen den Listenverwalter dieser Liste unter der Adresse
python-de-owner@python.net
erreichen
Wenn Sie antworten, bitte editieren Sie die Subject/Betreff auf einen sinnvollen Inhalt der spezifischer ist als "Re: Contents of python-de digest..."
Meldungen des Tages:
- Python-Stammtisch in Leipzig, 08.07.2008, 20:00 Uhr (Mike Müller)
- 'Pointer' auf eine @staticmethod-function (Dieter Neubauer)
- Python-Anwendungen im Browser (Franz Rittmannsberger)
- Re: 'Pointer' auf eine @staticmethod-function (Diez B. Roggisch)
- Re: Python-Anwendungen im Browser (Diez B. Roggisch)
Message: 1 Date: Mon, 07 Jul 2008 07:26:29 +0200 From: Mike Müller mmueller@python-academy.de Subject: [Python-de] Python-Stammtisch in Leipzig, 08.07.2008, 20:00 Uhr To: python-de@python.net Message-ID: 4871A905.8030406@python-academy.de Content-Type: text/plain; charset=windows-1252; format=flowed
== Leipzig Python User Group ===
Wir treffen uns am Dienstag, 08.07.2008 um 20:00 Uhr im Schulungszentrum der Python Academy in Leipzig ( http://www.python-academy.de/Schulungszentrum/anfahrt.html ).
Für das leibliche Wohl wird gesorgt. Eine Anmeldung unter info@python-academy.de wäre nett, damit wir genug Essen besorgen können.
Willkommen ist jeder, der Interesse an Python hat, die Sprache bereits nutzt oder nutzen möchte.
Aktuelle Informationen zu den Treffen sind unter http://www.python-academy.de/User-Group zu finden.
Viele Grüße Mike
Message: 2 Date: Mon, 07 Jul 2008 12:21:09 +0200 From: Dieter Neubauer neubauer@lni.de Subject: [Python-de] 'Pointer' auf eine @staticmethod-function To: Die Deutsche Python Mailingliste python-de@python.net Message-ID: 4871EE15.1010104@lni.de Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Hi,
eigentlich meinte ich es sei ganz einfach: ich weise einer Class-Variable einfach den Verweis auf eine Funktion zu, aber dann kam immer ..
'TypeError: unbound method time() must be called with A instance as first argument (got nothing instead)'
Abgestrippt sieht das Ganze so aus:
import time
class A: time = time.time
class B: @staticmethod def time(): return time.time()
print A.time() A.time = B.time print A.time()
Ich kann immer noch nicht sehen, wo da ein Problem ist, denn das geht:
B.time()
1215425937.687
Hat jemand 'ne Ahnung, was ich da falsch mache?
Gruß, Dieter
Hallo Dieter
Falls ich das richtig verstehe, brauchen alle in Klassen definierten Methoden die self-Referenz. Es sollte also gehen mit: def time(self) return time.time()
Müsste dann so funktionieren!
Franz
Message: 3 Date: Mon, 07 Jul 2008 13:11:45 +0200 From: Franz Rittmannsberger rittmannsberger@4a.co.at Subject: [Python-de] Python-Anwendungen im Browser To: python-de@python.net Message-ID: 4871F9F1.7070905@4a.co.at Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Ich hab eine Frage zum Laufen von python-Anwendungen im Browser. Ziel wäre es, dass ein Python-Script von einer HTML Seite aus gestartet wird dieses Script dann wieder den BRowser aufruft und eine neue Seite anzeigt. Folgendes schaffe ich (Datei heisst sb_direct.py):
'''Diese Datei wird von einer HTML Seite mit action="sb_direct.py" aufgerufen. ''' import os
#Hier kommt später der Code hin
# Der nächste Befehl öffnet die neue Seite - aber leider in einem neuen Tab os.startfile("C:\Python25\sb_exitus.html")
Wie schaffe ich es, dass ich die andere Seite auch im selben Tab aufmache, wie die Ursprungsseite und nicht in einem Neuen (Oder wie kann ich den alten Tab zumachen - was auf das gleiche hinausläuft)? Der "target=_self" Verweis in der html-Seite geht hier nicht.
Noch ein Hinweis: ich verwende Firefox!
Hat irgendwer eine Idee dazu?
Franz
Message: 4 Date: Mon, 7 Jul 2008 13:19:04 +0200 From: "Diez B. Roggisch" deets@web.de Subject: Re: [Python-de] 'Pointer' auf eine @staticmethod-function To: Die Deutsche Python Mailingliste python-de@python.net Message-ID: 200807071319.04480.deets@web.de Content-Type: text/plain; charset="iso-8859-1"
On Monday 07 July 2008 12:21:09 Dieter Neubauer wrote:
Hi,
eigentlich meinte ich es sei ganz einfach: ich weise einer Class-Variable einfach den Verweis auf eine Funktion zu, aber dann kam immer ..
'TypeError: unbound method time() must be called with A instance as first argument (got nothing instead)'
Abgestrippt sieht das Ganze so aus:
import time
class A: time = time.time
class B: @staticmethod def time(): return time.time()
print A.time() A.time = B.time print A.time()
Ich kann immer noch nicht sehen, wo da ein Problem ist, denn das geht:
B.time()
1215425937.687
Hat jemand 'ne Ahnung, was ich da falsch mache?
class A: time = staticmethod(time.time)
sollte gehen.
In Python werden Funktionen auf Klassen durch das Descriptorprotokoll gejagt. Das passiert nach dem Klassenstatement, und damit wird time in A oben eben auch zu einer "normalen" methode.
Alternativ geht
class A: pass
A.time =time.time
Diez
Message: 5 Date: Mon, 7 Jul 2008 13:46:19 +0200 From: "Diez B. Roggisch" deets@web.de Subject: Re: [Python-de] Python-Anwendungen im Browser To: python-de@python.net Message-ID: 200807071346.19612.deets@web.de Content-Type: text/plain; charset="iso-8859-1"
On Monday 07 July 2008 13:11:45 Franz Rittmannsberger wrote:
Ich hab eine Frage zum Laufen von python-Anwendungen im Browser. Ziel wäre es, dass ein Python-Script von einer HTML Seite aus gestartet wird dieses Script dann wieder den BRowser aufruft und eine neue Seite anzeigt. Folgendes schaffe ich (Datei heisst sb_direct.py):
'''Diese Datei wird von einer HTML Seite mit action="sb_direct.py" aufgerufen. ''' import os
#Hier kommt später der Code hin
# Der nächste Befehl öffnet die neue Seite - aber leider in einem neuen Tab os.startfile("C:\Python25\sb_exitus.html")
Wie schaffe ich es, dass ich die andere Seite auch im selben Tab aufmache, wie die Ursprungsseite und nicht in einem Neuen (Oder wie kann ich den alten Tab zumachen - was auf das gleiche hinausläuft)? Der "target=_self" Verweis in der html-Seite geht hier nicht.
Noch ein Hinweis: ich verwende Firefox!
Hat irgendwer eine Idee dazu?
Sowas geht so nicht. Dazu musst du schon einen "richtigen" HTTP-Server benutzen. Denn was du da oben machst ist einfach den FF neu starten, mit einer uebergebenen HTML-Datei. Dein FF ist halt so konfiguriert das er ein neues Tab aufmacht - er koennte aber auch ein neues Fenster aufmachen.
Was du stattdessen machen musst ist den Inhalt von sb_exitus.html einlesen und in sb_direct.py als Ergebnis zurueckgeben. Ich frage mich aber eh, wie es ueberhaupt klappt das sb_direct.py ausgefuehrt wird. Hast du irgendeine Form von HTTP-Server laufen?
Diez
python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Ende python-de Nachrichtensammlung, Band 63, Eintrag 5
Hallo Diez
ich hoffte, dass ich ohne einen Webserver auskommen könnte. Ich habe eine Lösung mit cgi scripts etc. ist aber nicht immer ganz einfach. Die Anwendung die ich machen möchte hat auch weniger mit Webseiten zu tun als eigentlich nur das Userinterface über HTML zu machen.
sb_direkt.py wird ausgeführt da ich folgende Zeile in der html Datei habe. '<form action="sb_direct.py" method="get" enctype="multipart/form-data" >
(ehrlich gesagt hat mich selbst gewundert dass das so einfach ging ;-O
Diese Script wird dann im DOS Fenster gestartet. Das funktioniert auch super - nur wird eben wenn ich aus dem Script heraus wieder FF starte ein neues Tab aufgemacht.
Franz

Hallo Franz,
bitte quote nicht einen kompletten Digest!!
ich hoffte, dass ich ohne einen Webserver auskommen könnte. Ich habe eine Lösung mit cgi scripts etc. ist aber nicht immer ganz einfach. Die Anwendung die ich machen möchte hat auch weniger mit Webseiten zu tun als eigentlich nur das Userinterface über HTML zu machen.
Wo ist der Unterschied? Ein Userinterface ueber HTML ist eine Webseite. Und fuer dynamic ist ein Server noetig. Es sei denn du machst es ueber google gears oder so (dann ist python aber raus aus dem spiel...)
sb_direkt.py wird ausgeführt da ich folgende Zeile in der html Datei habe. '<form action="sb_direct.py" method="get" enctype="multipart/form-data" >
(ehrlich gesagt hat mich selbst gewundert dass das so einfach ging ;-O
Diese Script wird dann im DOS Fenster gestartet. Das funktioniert auch super - nur wird eben wenn ich aus dem Script heraus wieder FF starte ein neues Tab aufgemacht.
Aha, spannend. Dann geht der FF wohl hin & fuehrt einfach das registrierte Programm fuer *py aus.
Aber alles in allem bleibt's dabei - das geht nicht ohne server. Es gibt zB mit TurboGears moeglichkeiten ein Executable zu machen das alles enthaelt:
http://blog.bjola.ca/2007/08/packaging-turbogears-application-as.html
Diez
participants (2)
-
Diez B. Roggisch
-
Franz Rittmannsberger