Seite 3 von 3

Verfasst: Dienstag 7. Juni 2005, 23:24
von -Sugar Princes-
hehe :P

aber erst nachträglich 8)

ja ich guck mal :wink:

_____________________________

*args = *arguments
**kwargs = **keywords

richtig?

es muss immer erst das wort mit einem (*) stehen danach das mit (**)

Verfasst: Dienstag 7. Juni 2005, 23:57
von rayo
Hi

Ja ist für variable Anzahl von Parametern:
def test(*args) -> in *args landen alle test(1,'test', None) -> args = [1, 'test', None]

def test(**kwargs) -> in *kwargs landen alle keyword-arguments test(ein=1, test='nix da', rest=None) -> kwargs = {'ein':1,'test':'nix da', 'rest': None}

Bei Tkinter kann man ebe zimlich viele sachen als keyword-arguments übergeben, darum mach ich das dort, um es weiter zugeben beim init der canvas

Gruss

Verfasst: Mittwoch 8. Juni 2005, 02:09
von -Sugar Princes-
so hab jetzt mal deine sachen eingebaut etc.

und CM's Vorschlag mit Docstring ausprobiert aber jetzt kommt Fehlermeldung und er kann den würfel nicht zusammenbringen

denk mal das ich irgendwas im aufbau des docstrings falsch gemacht habe

bitte um hilfe

Code: Alles auswählen


class Cube(Tk.Canvas):    
"""
Würfel wird instanziert
"""
    def __init__(self,parent,*args, **kwargs):
        
        try:
            kwargs['width']
        except KeyError:
            kwargs['width'] = 500

        try:
            kwargs['height']
        except KeyError:
            kwargs['height'] = 500

        Tk.Canvas.__init__(self, parent, *args, **kwargs)
        self.root = parent

        self.center = kwargs['width']/2
        self.scale  = kwargs['width']/2.0*0.5
"""

- def __init__ = Aufruf einer starken privaten Methode, die nur innerhalb der Klasse gilt
- Erstellung eines Objektes in einer Klasse
- *args = * arguments; ** kwargs = * keywords arguments
  Alle Argumente mit einem Stern (*) stehen vor den Argumenten mit zwei Sternen (**)
- Falls width und height nicht übergeben werden, wird width und height mit je 500 (Breite und Höhe der Canvas) pixel erstellt
- Vaiable Anzahl von Parametern

  Beispiel:

  def test (*args)       ->   in *args landen alle test(1,'test',None)
  -> args = [1,'test',None]
  
  def test (**kwargs)    ->   in **kwargs landen alle Keyboard-arguments test (ein=1,test='nix da', rest=None)
  -> kwargs = {'ein':1,'test':'nix da','rest':None}

- Tkinter kann viele Sachen als Keyword-Arguments übergeben, Weitergabe beim __init__ des Canvas

"""
fehlermeldung im def __init__

3 uhr nachts ich geh mal schlafen :P - gute nacht :wink:

Verfasst: Mittwoch 8. Juni 2005, 21:50
von -Sugar Princes-
mhh! sry leute da hab ich wohl irgendwie einen fehler eingebaut

hab es jetzt genauso wie es hier steht und es funktioniert :?

vll. ein tippfehler von mir irgendwo na ja wollte es euch nur sagen :)