Python Class - 找不到如何在另一个方法中使用方法 return 值
Python Class - Can't find out how to use method return value within another method
这就是我正在测试的class:
class Test:
def find_string(self, string):
self.string = string
return string.find(string)
def add_string(self, string):
found = self.find_string('bar')
if found == -1:
string = string + ' bar'
return string
这是我的设置:
test_string = 'foo'
Test1 = Test()
new_string = Test1.add_string(string)
结果
Expected result: foo bar
Result: foo
如果我用直接函数 find() 替换 add_string 中的方法调用,它工作正常。请帮助我。
对我来说所有的问题是变量有相似的名字,这可能会产生误导。
你的 string.find(string)
意味着 "bar".find("bar")
但你期望 "foo".find("bar")
您必须在 add_string()
中使用 self.string = string
(而不是 find_string()
),然后在 find_string()
中使用 self.string.find(string)
而不是 string.find(string)
- 然后你将在 self.string
中有 "foo"
并且在 string
中有 "bar"
所以最后 self.string.find(string)
将意味着 "foo".find("bar")
class Test:
def find_string(self, string):
return self.string.find(string)
def add_string(self, string):
self.string = string
found = self.find_string('bar')
if found == -1:
string = string + ' bar'
return string
# --- main ---
test_string = 'foo'
test = Test() # PEP8: `lower_case_names` for variables
new_string = test.add_string(test_string)
print(new_string)
这就是我正在测试的class:
class Test:
def find_string(self, string):
self.string = string
return string.find(string)
def add_string(self, string):
found = self.find_string('bar')
if found == -1:
string = string + ' bar'
return string
这是我的设置:
test_string = 'foo'
Test1 = Test()
new_string = Test1.add_string(string)
结果
Expected result: foo bar
Result: foo
如果我用直接函数 find() 替换 add_string 中的方法调用,它工作正常。请帮助我。
对我来说所有的问题是变量有相似的名字,这可能会产生误导。
你的 string.find(string)
意味着 "bar".find("bar")
但你期望 "foo".find("bar")
您必须在 add_string()
中使用 self.string = string
(而不是 find_string()
),然后在 find_string()
中使用 self.string.find(string)
而不是 string.find(string)
- 然后你将在 self.string
中有 "foo"
并且在 string
中有 "bar"
所以最后 self.string.find(string)
将意味着 "foo".find("bar")
class Test:
def find_string(self, string):
return self.string.find(string)
def add_string(self, string):
self.string = string
found = self.find_string('bar')
if found == -1:
string = string + ' bar'
return string
# --- main ---
test_string = 'foo'
test = Test() # PEP8: `lower_case_names` for variables
new_string = test.add_string(test_string)
print(new_string)