Seite 1 von 1
Verständnis Problem PyKDE4
Verfasst: Donnerstag 3. September 2009, 04:11
von AngelusNoctis
Hi
Wollte mal was mit PyKDE schreiben doch schon alleine beim lesen der Dokumentation hab ich ein Problem.
z.B.
http://api.kde.org/pykde-4.2-api/kio/KMountPoint.html
Also irgendwie fällt mir hier das komplette Verständnis...
Egal wie ichs drehe und wende es kommt permanent ein Invalid Syntax, TypeError o.ä.
Kann mir hier jemand einen kleinen Demo Code zeigen?
z.B. wie man mittels mountPoint() den mountpint anzeigt?
Verfasst: Donnerstag 3. September 2009, 06:38
von franzf
Hi,
Dein Problem wird sein, dass du versuchst ein KMountPoint-Objekt selbst zu erstellen. Das geht natürlich nicht
Code: Alles auswählen
>>> mp = KMountPoint()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: PyKDE4.kio.KMountPoint cannot be instantiated or sub-classed
Steht genau so in der Fehlermeldung.
Du musst dir eine
KMountPoint.List durch eine der beiden statischen Methoden geben lassen:
Jetzt musst du ein KMountPoint-Objekt suchen (click mal auf KMountPoint.List für die beiden Funktionen):
Code: Alles auswählen
>>> m = l.findByPath( "/home" )
>>> print m.mountPoint()
/home
>>> print m.mountType()
ext3
>>> print m.mountedFrom()
/dev/sdb2
>>> print m.probablySlow()
False
Ich hoffe jetzt verstehst du das besser.
Ciao
Franz
Verfasst: Donnerstag 3. September 2009, 09:55
von AngelusNoctis
Genau das war mein Problem. Danke.
Btw. Gehts nur mir so oder ist die PyKDE Doku mehr als dürftig? Zum Teil wird auch C++ erwähnt und Tutorials findet man sogut wie keine. Einsteigerfreundlich ist das ned.
Edit: Ich hab gerade mal in meinem Buch "Einführung in Python" nachgeschlagen und dort wird Statische Methoden gerade mal mit ca 5 Sätzen angesprochen aber nicht erklärt vorallem nicht mit Code. oO
Verfasst: Donnerstag 3. September 2009, 15:37
von franzf
AngelusNoctis hat geschrieben:Edit: Ich hab gerade mal in meinem Buch "Einführung in Python" nachgeschlagen und dort wird Statische Methoden gerade mal mit ca 5 Sätzen angesprochen aber nicht erklärt vorallem nicht mit Code. oO
Ist eigentlich nicht so schwer. Eine statische Methode ist eine solche, die ohne vorherige Instantiierung eines Objektes aufgerufen werden kann.
Kleines Beispiel:
Code: Alles auswählen
class Fingerprint:
def readFinger(self):
print "Fingerprint verified, You can pass"
# weitere Methoden
@staticmethod
def availableFingerprints():
print "This is all i have"
fp = Fingerprint() # Fingerprint-Objekt erstellen
fp.readFinger() # Funktion aufrufen
Fingerprint.availableFingerprints() # statische Funktion aufrufen
fp.availableFingerprints() # das geht auch, wenngleich das fp-Objekt nicht notwendig ist!
Fingerprint.readFinger() # das geht NICHT, readFinger() benötigt eine Instanz!
Beachte den decorator "staticmethod". Es gibt aber auch noch "classmethod". Unterschied wird z.B. hier erklärt:
http://rapd.wordpress.com/2008/07/02/py ... assmethod/
Verfasst: Samstag 12. September 2009, 12:23
von AngelusNoctis
Kann mir jemand verraten wie zum Teufel man mit KMountPoint, KAutoMount oder Solid ein ISO Image mit der mount option Loop mountet? oO
Ich komm ned drauf, finde keine Beispiele, die Doku hilft auch ned und das KDE nicht mal in der Lage ist direkt ein Image zu mounten kann ich ned glauben. oO
Verfasst: Montag 14. September 2009, 14:08
von lunar
Solid ist eine API zur Hardware-Verwaltung. Ein ISO-Abbild ist keine Hardware. KMountPoint ist bietet nur Informationen über eingehängte Geräte.
Die richtige Klasse ist also KAutoMount, oder als asynchrone Alternative "kio.KIO.mount()". Die Parameter sind doch eigentlich selbsterklärend, wo genau also liegt Dein Problem?