首页 > 解决方案 > 通过 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' 的输出

再次感谢!

标签: pythonclass

解决方案


如果您只想更新现有列表,则可以直接执行此操作。

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']

推荐阅读