写入文件子句

时间:2015-12-13 12:18:40

标签: python class

我有一个文件,其中我将人员列为'ID Name PhoneNumber Address',如下所示:

.asInstanceOf[A#T]

每当我尝试删除或修改某人时,我都不会这样做,除非我在程序执行期间添加了该人。我的意思是,我运行我的程序,除非我添加该人(通过我使用的添加方法),否则我将无法修改我的文件。

我可以像我说的那样将人添加到文件中,但即使这样,它也不会检查ID是否已经存在,即使我已经在我的方法中设置了这个ID。

我应该提一下,我有一个基于类的程序,带有repository-controller-UI结构。我在我的存储库中的SAVE功能是:

val z = x match {
  case i1: Impl1 =>
    5
  case i2: Impl2 =>
    true
}
z match  {
  case x: A#T => x
}

我在我的Controller中使用此功能,如下所示:

1 Mike 0752 Dallas Alley
2 John 0744 Square Avenue
3 Johnny 0923 Corner Street

我使用继承来创建FileRepository文件,该文件从初始存储库文件继承方法/参数。

def save(self, pers):
        '''
        Saves a person in class Persoana, returns ValueError if the ID already exists
        '''
        for i in self.__persList:
            if(i.idPers == pers.idPers):
                raise ValueError("ID already exists: " +str(i.idPers))
        self.__persList.append(pers)

我在UI文件夹中的功能是:

def createPerson(self, idPers, nume, telefon, adresa):
        '''
        Creates a person as long as the data introduced is correct
        '''
        i = Persoana(idPers, nume, telefon, adresa)
        self.__valiPers.validare(i)  //checks if the data I put in is alright(name doesn't contain numbers etc.)
        self.__repo.save(i)  

无论如何,我意识到这个练习可以更容易/更快地完成,但是教授想让我们理解OOP。无论如何,我可以写东西到文件,但它不会检查人的ID是否已经存在,除非我在程序执行期间添加了该人。除非在程序执行期间添加了人员,否则我无法删除/修改人员。

现在用这个打破了我的大脑2个小时,查看每一行和所有内容,但我似乎无法破解它。我做错了什么?

1 个答案:

答案 0 :(得分:0)

好吧,我发现了这个问题。问题是i.idPers和pers.idPers的类型不一样。一个是字符串,另一个是整数,它们之间的相等性从未发生过,因此程序从未进入IF循环。