Python中的语法错误......我不明白为什么

时间:2013-05-20 02:41:01

标签: python class syntax

我正在编写一个程序,从文件中读取数字和名称,并将它们转换为Person对象。它的方法应该能够显示名称或数字,或所有人的姓名和号码。但由于某种原因,我在我的环境类中遇到语法错误,我在填充方法内的while循环中'y + = 2'处增加y。

class Person (object):
pplCnt = 0
def __init__ (self,name,number):
    print("Creating a person named ", name, ", phone number: ", number)
    self.name = name
    self.number = number
    Person.pplCnt+=1
def getName(self):
    return self.name
def getNum(self):
    return self.number
def getAmtPpl(self):
    return Person.pplCnt

class Environtment:
x=0
y=0
def __init__(self):
    self.pplList = []
def populate(self):
    people = open("names.txt","r")
    listof = []
    for line in people:
        listof.append(line)
        x+=1
    while y<=x:
        self.pplList.append(Person(listof[y],listof[y+1])
        y+=2

def nameAll(self):
    z=0
    while z < int(x/2):
        print("Name: ",self.pplList[z].getName(),"\nNumber: ",self.pplList[z].getNum(),"\n")

1 个答案:

答案 0 :(得分:4)

你错过了一个括号

self.pplList.append(Person(listof[y],listof[y+1])

99%的奇怪语法错误是由上面一行上的未闭合括号引起的,因为python正在尝试执行行继续操作,这会导致语法错误。毕竟,我们不期望

self.pplList.append(Person(listof[y],listof[y+1])y+=2

是正确的语法。