因此,显然我只是不知道如何在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/