wie sieht class defenition aus?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alinos
User
Beiträge: 6
Registriert: Freitag 21. Mai 2010, 15:35

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
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

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
alinos
User
Beiträge: 6
Registriert: Freitag 21. Mai 2010, 15:35

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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

- 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
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.
alinos
User
Beiträge: 6
Registriert: Freitag 21. Mai 2010, 15:35

danke für deine Antwort
Antworten