Python 3.1.1类问题
我是一个新的Python程序员,在类中使用“self”有点困难。例如: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
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时,实例对象作为自参数传递给方法。使用自参数可以区分类方法和实例方法