如何将项目从过程中附加到全局列表

时间:2013-04-05 19:06:12

标签: python global-variables append

执行此操作时出现语法错误:

p = []
def proc(n):
    for i in range(0,n):
        C = i
        global p.append(C)

2 个答案:

答案 0 :(得分:11)

只需将其更改为以下内容:

def proc(n):
    for i in range(0,n):
        C = i
        p.append(C)

global语句只能在函数的最顶层使用,并且仅在分配给全局变量时才需要。如果您只是修改一个可变对象,则不需要使用它。

以下是正确用法的示例:

n = 0
def set_n(i):
    global n
    n = i

如果没有上述函数中的全局语句,这只会在函数中创建一个局部变量,而不是修改全局变量的值。

答案 1 :(得分:0)

问题是你试图直接打印列表而不是在打印前转换成字符串,并且由于数组是Student类的成员,你需要使用'self'来引用它。

以下代码有效:

class Student:
    array = []
    def addstudent(self,studentName):
        print("New Student is added "+studentName)
        self.array.append(studentName)
        print(str(self.array))
    def removeStudent(self,studentName):
        print("Before Removing the Students from the  list are "+ str(self.array))
        self.array.remove(studentName)
        print("After Removing the students from the list are "+ str(self.array))
if __name__ == '__main__':
   studata = Student()
   studata.addstudent("Yogeeswar")
   studata.addstudent("Linga Amara")
   studata.addstudent("Mahanti")
   studata.removeStudent("Yogeeswar")