繁体   English   中英

为什么我不断收到错误消息:AttributeError: 'int' object has no attribute 'subject'

[英]Why do I keep getting the error: AttributeError: 'int' object has no attribute 'subject'

因此,我正在创建一个代码,通过指定特定课程,学生接下来可以学习哪些共同必备条件以及哪些课程。 例如,如果用户输入“ECE 256”,则并存条件应该是 ECE 256L,他们可以参加的下一个课程是 ECE 304。

List.print_list()

文件/Users/marleneterrones/Dropbox/ECE 480 Group/linked list/node.py ,第 45 行,在,

 print_list result = result + str(dataObj.subject) AttributeError: 'str' object has no attribute 'subject'
class Node:
    def __init__(self, subject=None, corec=[] , next_class=[]):
        self.subject = subject          
        self.corec = corec              
        self.next_class  = next_class   

class LinkedList:
    def __init__(self):
        self.firstNode = Node(None, None, None)     
        self.lastNode = self.firstNode              
        self.size = 0                           

    def add(self, subject,corec):
        """Add a node to the list"""
        node = Node(subject , corec ,None)
        node.subject = subject;
        node.corec = corec;

        if self.firstNode.subject == None:
            self.firstNode = node
            self.lastNode = node
        else:
            self.lastNode.next_class = node
            self.lastNode = node

        self.size += 1

    def print_list(self):
        """prints whats ever in the array """
        result = ""
        currentNode = Node( None,None, None)
        currentNode = self.firstNode
        i = 0

        result = result + "("

        while currentNode != None:
            if i > 0:
                result = result + ","

            dataObj = currentNode.subject
            dataObj2 = currentNode.corec

            if dataObj != None:
                result = result + str(dataObj.subject)

            if dataObj2 != None:
                result = result + str(dataObj2.corec)

            currentNode = currentNode.next_class

            i = i + 1
        result = result + ")"
        return result
  1. dataObj = currentNode.subject使dataObj可能是int ,然后dataObj.subject导致这样的错误。 你可能只是想要

    result = result + str(dataObj)
  2. 您的代码段中有一些不必要的代码,例如:

     node = Node(subject , corec ,None) node.subject = subject; node.corec = corec;

    后两行不是必需的,因为您已经使用subjectcorec初始化了node

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM