Python 3.1.1类问题

Python 3.1.1类问题,python,class,Python,Class,我是一个新的Python程序员,在类中使用“self”有点困难。例如: class data: def __init__(self): self.table = [] def add(self, file): self.table.append(file) data.add('yes') 在这个函数中,我希望表是存储在类数据中的变量,并使用add来修改它。但是,当我运行此脚本时,会出现以下错误: Traceback (most recent ca

我是一个新的Python程序员,在类中使用“self”有点困难。例如:

class data:
    def __init__(self):
        self.table = []
    def add(self, file):
        self.table.append(file)
data.add('yes')
在这个函数中,我希望表是存储在类数据中的变量,并使用add来修改它。但是,当我运行此脚本时,会出现以下错误:

Traceback (most recent call last):
  File "/Projects/Python/sfdfs.py", line 7, in <module>
    data.add('yes')
TypeError: add() takes exactly 2 positional arguments (1 given)
回溯(最近一次呼叫最后一次):
文件“/Projects/Python/sfdfs.py”,第7行,在
data.add('yes')
TypeError:add()正好接受2个位置参数(给定1个)

我假设在这个实例中我试图以错误的方式调用函数,因为此语法与python文档中的一个示例非常相似:

首先需要创建类的实例:

mydata = data()
mydata.add('yes')
然后您可以在实例上调用该方法,当然,不是类上的

mydata = data()
mydata.add('yes')

首先需要创建类的实例

mydata = data()
mydata.add('yes')
然后您可以在实例上调用该方法,当然,不是类上的

mydata = data()
mydata.add('yes')

在调用类上的方法之前,需要实例化该类:

mydata = Data()
mydata.add('yes')

在调用类上的方法之前,需要实例化该类:

mydata = Data()
mydata.add('yes')

您正在尝试调用data.add(),这有点像在Java中调用静态方法。 尝试这样做:

d = data()
d.add('yes')

self
参数告诉方法它对类型为
data
的对象进行操作

您正试图调用data.add(),这有点像在Java中调用静态方法。 尝试这样做:

d = data()
d.add('yes')

self
参数告诉方法它对类型为
data
的对象进行操作

您正在类对象上调用add方法,而不是该类的实例

看起来您要做的是:

classInst=data()#创建一个实例

classInst.add(“stuff”)#调用该方法


在实例对象上调用add时,实例对象作为自参数传递给方法。使用self参数可以区分类方法和实例方法。

您在类对象上调用的add方法不是类的实例

看起来您要做的是:

classInst=data()#创建一个实例

classInst.add(“stuff”)#调用该方法

在实例对象上调用add时,实例对象作为自参数传递给方法。使用自参数可以区分类方法和实例方法