我正在尝试创建一个简单的函数,允许我返回一个反转的字符串。但是,当我调用该函数时,错误
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')
答案 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'))