2017-03-21 1 views
-1
class Main(): 
    def __init__(self): 
     def placeName(self): 
      place_name = raw_input("\n=> Enter a place name: ") 
      placename_data = place_name.strip() 
      if re.match("^[a-zA-Z]*$", placename_data): 
       return placename_data 
      else: 
       print("Error! Only Alphabets from are allowed as input!") 
a = Main() 
new = a.placeName() 

Above-Code für placename() -Methode ordnungsgemäß ausgeführt werden, ohne Klasse zu verwenden, aber wenn ich versuche, es in einer Klasse hinzuzufügen, Code gibt ein Attribut Fehler. Kann nicht verstehen, was hier falsch ist.Python Attribute: - Haupt Instanz hat kein Attribut ‚placename‘

+3

Wenn Sie eine Methode in Ihrer 'Main' Klasse definieren wollen, definieren Sie sie nicht _inside_' __init__'. In diesem Beispiel können Sie 'def __init __ (self):' vollständig entfernen. – khelwood

+0

@Khelwood: Nach dem Entfernen der Init bekomme ich diesen Fehler

+0

Das ist ein anderer Fehler, der durch etwas erzeugt wird, das nicht in dem Code, den Sie hier gepostet haben, steht. – khelwood

Antwort

1

Sie müssen __init__ nicht innerhalb der Main-Klasse definieren.

class Main(): 
    def placeName(self): 
     place_name = raw_input("\n=> Enter a place name: ") 
     placename_data = place_name.strip() 
     if re.match("^[a-zA-Z]*$", placename_data): 
      return placename_data 
     else: 
      print("Error! Only Alphabets from are allowed as input!") 
a = Main() 
new = a.placeName() 

Bitte entfernen __init__ Methode und versuchen.

+0

class Main() : \t def placename(): \t \t place_name = raw_input ("\ n => einen Ortsnamen eingeben:") a = Main() b = a.placeName() –

+0

Leider \t \t print (place_name) Ich habe versucht, init zu entfernen und versuchte auch mit dem einfachsten Code, aber es kommt ein Typ Fehler

+0

Sie vergessen 'self' in Funktion –

Verwandte Themen