我以前没有从头开始创建任何类。以前的任何内容都非常简单。我快要创建课程了吗?我对如何调用类的实例感到困惑。我想做的是创建一个class Book
并分配各种值(作者名,主目录,输出目录,获取标题的函数,从主目录获取.html文件的函数等)。我想为每个class Book
创建一个bookList[i]
的新实例。 bookList[i]
是每本书的homeDir。请问我缺少什么类和/或实例调用?预先感谢您提供的所有帮助或指示。
class Book(obj):
def __init__(self, inc_dir):
self.home_dir = inc_dir
# self.author_name = aName
# self.target_dir = target_dir
# main #
bookList = getDirs(homeDir) # returns a list. works.
# print("len(bookList): ", len(bookList))
i = 0
while i <= len(bookList):
curBook = Book(bookList[i])
print("curBook name: " + curBook.home_dir)
print("Book Path: " + bookList[i])
i += 1
Traceback (most recent call last):
File "D:\Scripts\Python\batch content editing\html_book_builder.py", line 65, in <module>
class Book(obj):
NameError: name 'obj' is not defined
答案 0 :(得分:0)
正在发生的事情是,当您编写class Book(obj)
时,Python解释器正在寻找名为obj
的东西。您尚未定义obj
,因此Python抱怨没有定义任何名为obj
的东西。
您可能已经看到object
的示例,如下所示:
class Book(object):
这些示例是已经存在的 object
的子类。没有名称错误,因为该内容已经定义。在Python 3中,您可以完全摆脱object
。您也可以在Python 2中使用,但是在这种情况下,类的行为会有所变化(在2和3之间有很多所谓的“破坏”更改)。
class Book:
答案 1 :(得分:0)
您正在定义类Book
以从类obj
继承,但是还没有名为obj
的类,因此会出现错误。如果要让类Book
从基类继承,则应该使它从类object
继承:
class Book(object):
,或者如果您使用的是Python 3.x,则可以省略父类规范:
class Book:
答案 2 :(得分:0)
我认为obj是作为Class Book的参数传递的。 在Python 2.x中应该是 object (小写)。在Python 3.x中,您可以省去它!