Python import Problem

Scheinbar So, ich weiß einfach nicht, wie importieren, die Dinge richtig in ein Python-Programm. Ich bin gerade erst mit der Sprache, und es ist viel anders als die von Java, die ich gewohnt bin.

Trotzdem, das Hauptproblem ist, dass es etwas falsch mit dem, wie ich bin Import der Pakete/Module/Klassen und ich kann nicht scheinen, um herauszufinden, was es ist.

Jetzt meine Datei-Struktur sieht wie folgt aus:

-Main Directory
 main.py
    -Person (Folder)
        __init__.py
        Person.py
        Student.py

Recht jetzt mein main.py Datei aussieht..

from Person import Person
from Person import Student

if __name__ == '__main__':

    p = Person.Person("Jim", 20)
    print(p)
    s = Student("Jim", 20, "math")
    print(s)

und ich erhalte eine Fehlermeldung von TypeError: 'module' object is not callable

Haben versucht, es zu s = Student.Student("Jim", 20, "Math") aber wenn das passiert, dass ich am Ende mit einem Fehler von TypeError: module.__init__() takes at most 2 arguments (3 given)

Referenz,

Person.py:

class Person():    
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return "My name is {0} and I am {1}".format(self.name, self.age)

Student.py:

from Person import Person
class Student(Person.Person):

    def __init__(self, name, age, sub):
        Person.__init__(self,name,age)
        self.sub = sub

Egal, was ich tun, um die Einfuhr oder etwas, was ich scheinen zu ändern, es gibt mir immer Fehler. Keine Ahnung, was an dieser Stelle zu tun - vielleicht habe ich gerade verpasst die Erstellung der Klassen und Unterklassen, wenn es wurde von mir gezeigt, aber ich kann nicht herausfinden, was es zu beheben.

siehe stackoverflow.com/questions/2360724/...
Sie hätte wahrscheinlich eine einfachere Zeit, wenn Sie Kleinbuchstaben in Ihren Modulen und Großbuchstaben in Ihre Klasse Namen. Check-out Namenskonventionen: python.org/dev/peps/pep-0008
auch; Python ist nicht Java. Es gibt keinen Grund zu setzen, jede Klasse in ein eigenes Modul; person.Person und person.Student beide definiert in person/__init__.py oder person.py ist durchaus vernünftig.
Ähnlich: TypeError: Modul.__init__() dauert höchstens 2 Argumente (3)

InformationsquelleAutor Ben | 2011-07-20

Schreibe einen Kommentar