我以前没有从头创建过任何类。以前的任何一个都非常简单。我就要创建这个类了吗?我不知道如何调用类的实例。我要做的是创建一个class Book
并分配各种值(作者名、主目录、输出目录、获取标题的函数、从主目录获取.html文件的函数等)。我想为每个bookList[i]
创建一个class Book
的新实例。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
您定义的类
Book
从类obj
继承,但是没有名为obj
的类,因此出现错误。如果您的意思是让类Book
从基类继承,那么您应该使它从类object
继承:或者,如果使用的是Python 3.x,则只需省略父类规范:
^{pr2}$我认为是obj,它被作为课堂课本的一个论点。 在Python2.x中,它应该是object(小写),在Python3.x中,您可以省去它!在
当您编写
class Book(obj)
时,Python解释器正在寻找名为obj
的内容。您还没有定义obj
,因此Python抱怨没有定义名为obj
的内容。在您可能已经看到了
object
的示例,如下所示:这些示例是对已经存在的子类化
^{pr2}$object
。不存在名称错误,因为已经定义了该项。在Python3中,您可以完全消除object
。在Python2中也可以,但是在这种情况下类的行为会发生一些变化(在2和3之间有很多所谓的“中断”更改)。在相关问题 更多 >
编程相关推荐