繁体   English   中英

Python AttributeError'str'对象没有属性'_sID'

[英]Python AttributeError 'str' object has no attribute '_sID'

我在python ecplise中遇到错误,但没有找到解决问题的解决方案。

类:

class Student:
    '''
    This class is used to store data about the students
    It contains:
        sID - id of student
        sName - name of student
    '''
    def __init__(self, sID, sName):
        '''
        Initialized the student
        '''
        self._sID = sID
        self._sName = sName


    def getID(self):
        '''
        Return student id
        '''
        return self._sID

    def setID(self, ID):
        self._sID = ID

    def setName(self, name):
        self._sName = name

    def getName(self):
        '''
        Return student name
        '''
        return self._sName

    def __str__(self):
        '''
        Converts the student into printable text
        '''
        msg ='ID: ' + str(self._sID) + ', Name: ' + self._sName
        return msg

    def __eq__(self, s):
        '''
        Checks if two students have the same ID and name
        '''
        return self._sID == s._sID and self._sName == s._sName

以下是具有属性的erorr:

 Traceback (most recent call last):
  File "C:\Users\crist\workspace\lab5_7\appStart.py", line 16, in <module>
    ui.mainMenu()
  File "C:\Users\crist\workspace\lab5_7\UI\ui.py", line 80, in mainMenu
    self._searchElementMenu(cmd[1])
  File "C:\Users\crist\workspace\lab5_7\UI\ui.py", line 57, in _searchElementMenu
    self._controller.searchElement(cType, cSearch)
  File "C:\Users\crist\workspace\lab5_7\controller\controller.py", line 27, in searchElement
    if isinstance(lst[i], Student) == True and lst[i] == eSearch:
  File "C:\Users\crist\workspace\lab5_7\domain\student.py", line 55, in __eq__
    return self._sID == s._sID and self._sName == s._sName
AttributeError: 'str' object has no attribute '_sID'

有人能帮我吗?

如果有必要,我可以给您更多代码。

sID是每个学生的唯一ID,我需要此功能来验证是否有更多学生具有相同的ID。

非常感谢 !

您正在尝试将=运算符与Student实例和字符串一起使用。

该错误表明字符串实例不具有_sID 变量,例如:

"test"._sID

我有同样的问题-在PythonWin中设置环境时会得到相同的错误消息。 我没有做任何更改,但是重新启动了PythonWin,它又照常工作了。

暂无
暂无

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

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