我想创建一个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>>
答案 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。