创建/调用类实例,错误对象未定义

2024-04-19 20:09:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前没有从头创建过任何类。以前的任何一个都非常简单。我就要创建这个类了吗?我不知道如何调用类的实例。我要做的是创建一个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

Tags: 实例函数nameselfobjlenhtmldir
3条回答

您定义的类Book从类obj继承,但是没有名为obj的类,因此出现错误。如果您的意思是让类Book从基类继承,那么您应该使它从类object继承:

class Book(object):

或者,如果使用的是Python 3.x,则只需省略父类规范:

^{pr2}$

我认为是obj,它被作为课堂课本的一个论点。 在Python2.x中,它应该是object(小写),在Python3.x中,您可以省去它!在

当您编写class Book(obj)时,Python解释器正在寻找名为obj的内容。您还没有定义obj,因此Python抱怨没有定义名为obj的内容。在

您可能已经看到了object的示例,如下所示:

class Book(object):

这些示例是对已经存在的子类化object。不存在名称错误,因为已经定义了该项。在Python3中,您可以完全消除object。在Python2中也可以,但是在这种情况下类的行为会发生一些变化(在2和3之间有很多所谓的“中断”更改)。在

^{pr2}$

相关问题 更多 >