创建类并调用特定函数 - 字符串列表

时间:2017-01-30 16:28:52

标签: python

我想创建一个StringList类,我可以在其中调用以下函数:

s1 = StringList()
s1.strings.append('a string')

必须创建一个字符串作为列表,我希望能够将字符串添加到该列表中,然后打印出字符串加上字符串的长度

到目前为止,我创建了类// thx到目前为止我编辑的答案

 class StringList:
    def __init__(self):
        self.strings = []
        self.lenghts = 0

编辑:到目前为止我有(通过评论和解决方案)

class StringList:
    def __init__(self):
        self.strings = []


    def add_string(self, string_value):
        self.strings.append(string_value)

能够做到

s1.add_string('a string')

现在我的问题是长度问题。我无法让它发挥作用。

当像这样使用它时:

 class StringList:
    def __init__(self):
        self.strings = []
    def add_string(self, string_value):
        self.strings.append(string_value)
    def lengths(self):
        return len(self.string_value)

以下显示

>>> s1 = StringList()
>>> s1.add_string('a string')
>>> print(s1.strings, s1.lengths)
['a string'] <bound method StringList.lengths of <__main__.StringList object at 0x03566CB0>>

1 个答案:

答案 0 :(得分:0)

目前还不完全清楚你在问什么,但这里有:

self.strings应该是一个列表吗?据我了解,self.strings应该是一个列表,您可以在创建类(即参数)和使用sl.strings.append('a string')时将内容放入其中。这是正确的,还是只想要后一种功能?

如果你只想要后者(我怀疑是这种情况),那么就像这样简单地定义你的类:

class StringList:
    def __init__(self, lenghts):
        self.strings = []

然后您可以自由运行sl.strings.append('a string')来添加字符串。

如果您想要上述两种功能,那么您可以这样做:

class StringList:
    def __init__(self, strings=None, lenghts):
        self.strings = strings if strings is not None else []

设置默认参数,以便在创建StringList实例时不传递参数,然后它将分配参数[]。如果您确实传递了一些参数,那么它必须是一个列表供您以后才能运行sl.strings.append('a string')

使用strings=None默认参数,因为使用空列表作为默认参数是dangerous