python函数和类中的列表

python函数和类中的列表,python,list,Python,List,如何使用该类中的任何函数都可以访问的列表。例如,在我的学生班,我想创建一个名为grades的列表,我想创建单独的函数来添加到列表中,从列表中删除,等等 class Student(object): def __init__(self): self.grades = [] myStudent = Student() myStudent.grades.append(90) 这个问题很基本。你有没有经历过一场灾难 如您所见,有两种方法可以访问相同的列表,grades。您

如何使用该类中的任何函数都可以访问的列表。例如,在我的学生班,我想创建一个名为grades的列表,我想创建单独的函数来添加到列表中,从列表中删除,等等

class Student(object):
    def __init__(self):
        self.grades = []


myStudent = Student()

myStudent.grades.append(90)
这个问题很基本。你有没有经历过一场灾难


如您所见,有两种方法可以访问相同的列表,
grades
。您也可以创建另一种方法来从
等级
中删除项目。

查看
静态
方法/函数。您无需执行任何操作。如果您不覆盖它,您将访问类中的实例。如果我要删除另一个函数中的()呢?我在其他函数中是说self.grades.remove(x)还是说grades.remove(x)另外,我不知道从类外如何调用列表,我在列表中添加/删除的任何内容都将从函数本身内部进行。那么我还需要说“self”吗?是的,我现在在一个python类中,试图理解如何在一个类的多个函数中使用一个列表。我确实尝试了你上面的建议,我无法创建一个remove grade函数来调用remove()来列出等级…@user1207457是的,你需要在所有方法中使用
self.grades
(假设它们的第一个参数名为
self
,这是常规)。这就是Python的工作原理;始终需要指定要在其中查找属性的对象。只有局部变量和全局变量可以使用裸名称访问,如
grades
。我支持Francis的建议,通过Python教程学习。有没有一种方法可以在foo1或foo2中的append()或remove()之后打印列表,而不必说student.grades来打印新列表?当然,您可以在
print self.grades
中添加
foo1()
foo2()
>>> class Student(object):
...     def __init__(self):
...         self.grades = []
...     def foo1(self):
...         self.grades.append(1)
...     def foo2(self):
...         self.grades.append(2)
...
>>> student = Student()
>>> student.foo1()
>>> student.grades
[1]
>>> student.foo2()
>>> student.grades
[1, 2]