具有字符串参数的函数的TypeError

时间:2017-06-19 22:50:25

标签: python function methods

我正在尝试创建一个简单的函数,允许我返回一个反转的字符串。但是,当我调用该函数时,错误

TypeError: reverseString() takes 1 positional argument but 2 were given

出现了。我对Java更熟悉,并且想知道问题是什么,以及在Python中传递字符串参数是否相同。

  Class myString()

        def reverseString(string):
              return string[:,:,-1]

  p = myString()
  p.reversedString('Eric')

1 个答案:

答案 0 :(得分:4)

Python需要一个特殊的第一个参数,用于传递调用该​​方法的实例的方法。您可以使用几乎任何有效的变量名称,但这是使用self的Python约定,它将使您的代码更容易被其他人阅读。

class myString:    
     def reverseString(self, string):
         return string[::-1]

p = myString()
print(p.reverseString('Eric'))

要访问实例变量,您可以使用self.var - 您不能像Java一样执行var

另外,正如@jonrshape在评论中指出的那样,你不需要在一个类中包装函数:

def reverseString(string):
    return string[::-1]

print(reverseString('Eric'))