所以顯然我只是不知道如何在Python程序中正確導入東西。我剛開始使用該語言,與我習慣的Java有很大不同。Python導入問題
無論如何,主要的問題是,我如何導入包/模塊/類,有什麼問題,我似乎無法弄清楚它是什麼。
現在我的文件結構如下所示:
-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
不管我做什麼,以進口或什麼,我似乎可以改變,這一切一直給我錯誤。不知道在這一點上應該做什麼 - 也許我只是錯過了創建類和子類時,它顯示給我,但我無法找出任何解決辦法。
看到http://stackoverflow.com/questions/2360724/in-python-what-exactly-does-import-import – mjv
你,如果你在你的模塊使用小寫可能會對此有一個更簡單的時間和大寫在你的類名中。查看命名約定:http://www.python.org/dev/peps/pep-0008/ –
也; Python不是Java。沒有任何理由將每個類放在自己的模塊中; 'person/__init __。py'或'person.py'中定義的'person.Person'和'person.Student'完全合理。 – geoffspear