Seite 1 von 1

Docs von Python Libraries

Verfasst: Sonntag 30. November 2008, 23:38
von Tiefflieger
Vielleicht bin ich ja von der Java-Api etwas verwöhnt, aber ist das normal, daß die Dokumentation wie dort: http://www.wxpython.org/docs/api/wx.Win ... enToClient
Ich dachte, einer der Grundsätze von Python sei "Better explicit than implicit"? Was ich unklar finde:
- Wie genau beeinflußt der Parameter die Funktion?
- Welche Klasse hat der Parameter genau? Nur mit dem Namen kann man doch nichts anfangen, für mich kann "Point" aus 2 oder mehr Koordinaten, evtl auch noch Dicke und Farbe, bestehen
- Und der Rückgabewert, welche Klasse hat der (gleiche Begründung wie eben)?


Oder sind Klassennamen innerhalb eines Programms einzigartig? In Java zB. ist es durchaus erlaubt, daß zwei verschiedene Klassen "Point" heißen, solange sie in verschiedenen Packages sind.

Wie gesagt komme ich von Java hierher, deswegen schließe ich natürlich nicht aus, daß ich einfach noch anders ticke als Python, und daher meine Probleme stammen ;-)

Verfasst: Montag 1. Dezember 2008, 00:00
von str1442
Die Funktion nimmt eine Point Instanz entgegen, wandelt sie wie in der Doc beschrieben um, und gibt eine neue Point Instanz zurück.

Code: Alles auswählen

In [1]: import wx
wx
In [2]: wx.Point
Out[2]: <class 'wx._core.Point'>
Die Dokumentation von wxPython soll, nachdem was ich hörte, eher mager sein. Du musst wohl die originale WxWidgets Dokumentation miteinbeziehen und um die Ecke denken.

Verfasst: Montag 1. Dezember 2008, 00:32
von Tiefflieger
str1442 hat geschrieben:Die Funktion nimmt eine Point Instanz entgegen, wandelt sie wie in der Doc beschrieben um, und gibt eine neue Point Instanz zurück.
Soviel ist klar, aber was ist denn genau ein Point? Muß der quaken und watscheln, oder muß der auch noch fliegen können? :wink:

Trotzdem danke für die Hilfe und den Tip mit wxWidgets, werde mich dort mal umschauen :-)

Verfasst: Montag 1. Dezember 2008, 00:51
von str1442
Point ist eine der grundlegenden Klassen von wx und unter wx.Point zu finden. Jetzt kannst du doch einfach help(wx.Point) quaken lassen ;)

Verfasst: Montag 1. Dezember 2008, 00:53
von Darii
Tiefflieger hat geschrieben: Soviel ist klar, aber was ist denn genau ein Point? Muß der quaken und watscheln, oder muß der auch noch fliegen können? :wink:
Steht doch in der Doku zu wx.Point

Verfasst: Montag 1. Dezember 2008, 01:48
von Leonidas
Tiefflieger hat geschrieben:
str1442 hat geschrieben:Die Funktion nimmt eine Point Instanz entgegen, wandelt sie wie in der Doc beschrieben um, und gibt eine neue Point Instanz zurück.
Soviel ist klar, aber was ist denn genau ein Point? Muß der quaken und watscheln, oder muß der auch noch fliegen können? :wink:
Etwas was sich wie wx.Point verhält. Es muss höchstwarscheinlich kein wx.Point selbst sein und vermutlich nicht davon erben, aber es muss eben das gleiche Verhalten zeigen.

Verfasst: Montag 1. Dezember 2008, 12:40
von lunar
Leonidas hat geschrieben:
Tiefflieger hat geschrieben:
str1442 hat geschrieben:Die Funktion nimmt eine Point Instanz entgegen, wandelt sie wie in der Doc beschrieben um, und gibt eine neue Point Instanz zurück.
Soviel ist klar, aber was ist denn genau ein Point? Muß der quaken und watscheln, oder muß der auch noch fliegen können? :wink:
Etwas was sich wie wx.Point verhält. Es muss höchstwarscheinlich kein wx.Point selbst sein und vermutlich nicht davon erben, aber es muss eben das gleiche Verhalten zeigen.
Wahrscheinlich doch ... denn die darunter liegende C++-Schicht verlangt klar definierte Typen.

@tiefflieger
Ich weiß nicht, wie du das siehst, aber im Allgemeinen ist ein "Punkt" nichts weiter als eine Liste von Koordinaten innerhalb eines Koordinatensystems. Da ein Bildschirm nicht dreidimensional ist, hat ein wx.Point wohl nur eine X und eine Y-Koordinate. Der Typ ist ja in der Doku angegeben, und was die Doku tut, ist auch gesagt: "Converts from screen to client window coordinates."

Irgendwie verstehe ich nicht, was da unklar sein soll ...

Verfasst: Montag 1. Dezember 2008, 13:04
von DeJe
Ihm fehlte halt einfach dies hier. ;)

So ein kleiner 'Punkt' ist halt schnell mal übersehen. :D

Verfasst: Montag 1. Dezember 2008, 16:36
von Tiefflieger
DeJe hat geschrieben:Ihm fehlte halt einfach dies hier. ;)
Ganz genau :-) 1. Der volle Name der Klasse (also auch in welchem Modul sie liegt) und 2. nett wäre auch noch eine Verlinkung in der Doku.
Es ging mir nicht um diese eine Funktion, sondern eher allgemein darum, die Doku zu verstehen.

Man stelle sich folgende Doku vor:
----------------
GoToWarp(self, shearfactor)
gets you really fast from A to B

Parameters:
shearfactor (type=Factor)

returns:
Hyperfluxcompensation
----------------
Woher soll ich denn da wissen, was die Klassen Factor und Hyperfluxcompensation genau sind? Nur mit dem Namen (also ohne das beinhaltende Modul) kann ich nix anfangen, oder beziehen sich die Klassennamen immer nur auf das eigene Modul?
"Factor" z.B. könnte doch sowohl in meinem (fiktiven) Mathe-Modul, als auch in meinem StarTrek-Modul existieren, oder? Es wären eben zwei vollkommen verschiedene Klassen mit gleichem Namen.

Verfasst: Montag 1. Dezember 2008, 22:35
von Darii
Tiefflieger hat geschrieben:Woher soll ich denn da wissen, was die Klassen Factor und Hyperfluxcompensation genau sind? Nur mit dem Namen (also ohne das beinhaltende Modul) kann ich nix anfangen, oder beziehen sich die Klassennamen immer nur auf das eigene Modul?
„Immer“ bestimmt nicht. Aber wenn nichts dabei steht wird wohl schon das aktuelle Modul gemeint sein. Aber die Doku von wypython ist wirklich nicht besonders toll.

Verfasst: Montag 1. Dezember 2008, 22:57
von DeJe
Naja, zur "Ehrenrettung" der wx-Doc muß man aber sagen das es sich um ein GUI-TK handelt. Was soll 'Point' Anderes sein als (x,y)? ;)

Kann ja sein das es mehr und größere Löcher in der wx-Doc gibt, aber Point sollte man selbst als Anfänger mit GUI/wx kennen. Oder anders ausgedrückt, wenn mir unklar ist was 'Factor' oder 'Hyperfluxcompensation' im Modul 'stmbttf' ("""This module implements classes for StarTrek meets Back to the Future""") ist, sollte ich nicht auf Warp gehen. :D

Verfasst: Dienstag 2. Dezember 2008, 12:55
von Y0Gi
wxPython als Aufsatz für wxWidgets (das C/C++[?]) verwendet ist allerdings nun nicht gerade das Paradebeispiel für gute Dokumentation. Ich habe mich auch schon öfter in den wxWidgets-Docs umgesehen, weil auch die Python-Doku mehr oder weniger nur ein Wrapper ist ;)

Verfasst: Dienstag 2. Dezember 2008, 20:56
von Tiefflieger
Ok, jetzt ists mir klar, vielen Dank allen Antwortern :-)