Python 传入的字符串表示有两个参数

Python 传入的字符串表示有两个参数,python,integer,arguments,parameter-passing,add,Python,Integer,Arguments,Parameter Passing,Add,我正在编写一个函数,用于对类中的值进行加减,这有点问题 我正在尝试将从csv读入的值传递到add函数。这个值是一个十进制值(例如,500.00)。我已经尝试消除尾随的0,使其仅为500,这也不起作用。我不断得到: TypeError: add() takes exactly one argument (two given). 尽管我有一份书面声明确认它只是想通过500强 以下是我的功能: def add(amount): self.total = self.total + amount

我正在编写一个函数,用于对类中的值进行加减,这有点问题

我正在尝试将从csv读入的值传递到add函数。这个值是一个十进制值(例如,500.00)。我已经尝试消除尾随的0,使其仅为500,这也不起作用。我不断得到:

TypeError: add() takes exactly one argument (two given).
尽管我有一份书面声明确认它只是想通过500强

以下是我的功能:

def add(amount):
    self.total = self.total + amount
它被
v.add(i)
调用,即使我将i设置为任意整数值,它仍然会导致相同的错误。我对python相对缺乏经验,所以这里可能缺少一些简单的东西。谢谢。

类Myclass(对象):
class Myclass(object):
    def __init__(self, total=0.):
        self.total = total

    def add(self, amount):     # <= needs `self` parameter
        self.total += amount

v = Myclass()
v.add(2.)
定义初始值(自身,总计=0): self.total=总计 def add(self,amount):#
类Myclass(对象):
定义初始值(自身,总计=0):
self.total=总计

def add(self,amount):#听起来您可能有两个问题:

  • 方法的正常定义假定“自”参数

    def添加(自身、金额):

  • 如果您试图删除尾随的零,则似乎正在处理字符串。 您可能希望/需要将字符串值“500.00”转换为浮点值

    self.total=self.total+浮动(金额)

  • 如果您试图将字符串添加到数字中,Python会抱怨。您可以使用type()函数查看保存在变量中的对象的类型。例如,您可能希望在add()方法中打印'amount'参数的类型,如下所示(用于调试):

    它将向您显示您拥有的内容(str、int等)


    (顺便说一句,最好在方法之外进行转换,让方法只接受数值表示金额。)

    听起来您可能有两个问题:

  • 方法的正常定义假定“自”参数

    def添加(自身、金额):

  • 如果您试图删除尾随的零,则似乎正在处理字符串。 您可能希望/需要将字符串值“500.00”转换为浮点值

    self.total=self.total+浮动(金额)

  • 如果您试图将字符串添加到数字中,Python会抱怨。您可以使用type()函数查看保存在变量中的对象的类型。例如,您可能希望在add()方法中打印'amount'参数的类型,如下所示(用于调试):

    它将向您显示您拥有的内容(str、int等)


    (顺便说一句,最好在方法之外进行转换,让方法只接受数值表示金额。)

    尝试在
    金额
    参数之前添加
    self
    。另外,尝试使用
    v()。改为添加(i)
    。尝试在
    数量
    参数之前添加一个
    self
    。另外,尝试使用
    v()。改为添加(i)
    。点击。谢谢,我就知道这很傻。我没有把它放在那个功能上,而是一直忽略它。我会接受的,延迟到了!完全正确谢谢,我就知道这很傻。我没有把它放在那个功能上,而是一直忽略它。我会接受的,延迟到了!
    print "the type of amount is", type(amount)