Seite 1 von 1

wie sieht class defenition aus?

Verfasst: Freitag 4. Juni 2010, 16:28
von alinos
Halllo miteinander, :)
ich habe ein class mit 3 Attributen geschriben und dazu ein Function.wenn ich von dieser class ein Instanz erzeugt ,gibts es ein Fehler .Hier die Class:

class Project():
def _init_(self,name,material,simpa):
""" name und material von project hinfügen"""
self.Name=name
self.Material=material
self.Simpa=simpa
def namemathinzufuegen(name,material):
namemat={
"jean" : "hammer",
"sven" : "ciment"
}
if name and material not in sorted (namemat.items()):
namemat=namemat.append(name,material)

hier ist de fehler :
>>> Project(jean,Hammer,0)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
HfssProject(jean,Hammer,0)
NameError: name 'jean' is not defined

können sie mir erklären warum jean ist nicht definiert ,man muss nicht ein type deklaration machen,wenn ich annehme dass jean type string hat.
mfg
alinos

Re: wie sieht class defenition aus?

Verfasst: Freitag 4. Juni 2010, 16:44
von gkuhl
Hallo,

zunächst gibt es hier Code-Tags. Dann ist der Code leichter lesbar. Zu deinem Code:
- __init__ hat zwei Unterstriche auf jeder Seite
- versuche dich an den Python Style Guide (PEP8) zu halten
- jean ist kein String, weil keine Gänsefüßchen

Grüße
Gerrit

Re: wie sieht class defenition aus?

Verfasst: Freitag 4. Juni 2010, 19:07
von alinos
Halllo miteinander, :)
ich habe den code noch mal postiert damit es lesbar wird.Ich habe ein class mit 3 Attributen geschriben und dazu ein Function.wenn ich von dieser class ein Instanz erzeugt ,gibts es ein Fehler .Hier die Class:

Code: Alles auswählen

class Project():

       def _init_(self,name,material,simpa):
       """ name und material von project hinfügen"""
       self.Name=name
       self.Material=material
       self.Simpa=simpa

      def namemathinzufuegen(name,material):
           namemat={
                          "jean" : "hammer",
                          "sven" : "ciment"
                         }
          if name and material not in sorted (namemat.items()):
          namemat=namemat.append(name,material)
hier ist de fehler :
>>> Project(jean,Hammer,0)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
HfssProject(jean,Hammer,0)
NameError: name 'jean' is not defined
können sie mir erklären warum jean ist nicht definiert ,man muss nicht ein type deklaration machen,wenn ich annehme dass jean type string hat.
- __init__ hat zwei Unterstriche auf jeder Seite
ich vestehe nicht gut was meinst du dabei? zwei unterstriche dürfen nicht sein?
mfg
alinos

Re: wie sieht class defenition aus?

Verfasst: Freitag 4. Juni 2010, 19:44
von CM
- Damit Python die __init__-Methode als solche erkennt, braucht es zwei Unterstriche. Du hast nur einen auf jeder Seite. Das wird nicht funktionieren, wie Du es vielleicht erwartest.

- Die Fehlermeldung ist eindeutig: jean ist nicht dasselbe wie "jean"! jean ist nicht definiert. "jean" wäre ein string. Wenn Du Parameter übergeben willst, müssen sie auch in Python definiert sein. z. B.

Code: Alles auswählen

myname = "jean"
mytool = 'hammer'
myproject = Project(myname, mytool, 0)
# oder
myproject = Project("jean", "hammer", 0)
- Der Code ist wirklich schlecht lesbar und liest sich auch seltsam. Magst Du Dir nochmal das Tutorial anschauen?

HTH
Christian

Re: wie sieht class defenition aus?

Verfasst: Freitag 4. Juni 2010, 20:59
von BlackJack
@alinos: Vor allem wäre es auch nett wenn Du nicht Quelltext und Fehlermeldungen zeigst die ganz offensichtlich nicht zusammenpassen. Fehler in Quelltext zu finden, den wir nicht kennen ist halt mit einer Menge raten auf unserer Seite verbunden.

Re: wie sieht class defenition aus?

Verfasst: Freitag 4. Juni 2010, 21:51
von alinos
danke für deine Antwort