python - 通过 Python 中的类方法更新 __init__ 元素
问题描述
我有一个将字符串列表作为参数的类,我想让我的类方法更新init方法中的元素。不确定这是可能的还是不好的做法,但任何建议都将不胜感激!代码如下:
class TextList:
def __init__(self, listofstrings):
self.strings = listofstrings
def my_method(self):
newstrings = [i.strip() for i in self.strings]
# code that updates 'self.strings' to equal 'newstrings'
这样我就可以运行:
mylist = TextList(mylistofstrings)
mylist = mylist.my_method()
而 mylist.strings 将等于 'my_method' 的输出
再次感谢!
解决方案
如果您只想更新现有列表,则可以直接执行此操作。
def my_method(self):
self.strings = [i.strip() for i in self.strings]
由于此方法self.strings
直接更新,因此无需返回任何内容。
>>> mylist = TextList(["hi\n", "bye\n"])
>>> mylist.strings
['hi\n', 'bye\n']
>>> mylist.my_method()
>>> mylist.strings
['hi', 'bye']