因此,显然我只是不知道如何在Python程序中正确导入内容。我只是从语言开始,它和我以前使用的Java有很大不同。

无论如何,主要的问题是我导入包/模块/类的方式出了问题,我似乎无法弄清楚它是什么。

现在,我的文件结构如下所示:

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


现在我的main.py文件看起来像..

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)


而且我一直收到错误TypeError: 'module' object is not callable

曾尝试将其更改为s = Student.Student("Jim", 20, "Math"),但是当发生这种情况时,我最终得到错误TypeError: module.__init__() takes at most 2 arguments (3 given)

以供参考,

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


无论我对导入执行任何操作或可能要更改的任何操作,所有操作都会不断给我带来错误。现在不知道该怎么办-也许我只是错过了向我展示类和子类时创建的类,但是我不知道要解决什么。

最佳答案

main.py:

from Person import Person
from Person import Student

if __name__ == '__main__':

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


学生

from Person import Person

class Student(Person):

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




class Person(object):
    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)

关于python - Python导入问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6756569/

10-12 12:44
查看更多