如何返回对象列表而不在此处列出。 我想返回一个测试对象列表,而不是一个str ..列表。
class test:
val = ""
def __init__(self,v):
self.val = v
def tolower(self,k):
k = k.val.lower()
return k
def test_run():
tests_lst = []
tests_lst.append(test("TEST-0"))
tests_lst.append(test("TEST-1"))
tests_lst.append(test("TEST-2"))
i_want_object_of_test = map(lambda x:x.val.lower(),tests_lst)
if __name__ == '__main__':
test_run()
输出: ['test-0','test-1','test-2']
我想要一个测试对象列表,其中每个对象的val已更改为小写。
答案 0 :(得分:0)
问题不明确。我会按照我的理解回答。
我的理解是您正在尝试创建一个新的测试对象列表,其值为小写。
您可以通过更改for循环中每个对象的状态来执行此操作(通常不建议更改状态):
for test_obj in test_lst:
test_obj.val = test_obj.val.lower()
通过列表理解来实现它的方法是创建新的测试实例:
i_want_object_of_test = [test(test_obj.val.lower()) for test_obj in test_lst]
此外,您的测试类存在一些问题:
class test(object):
val = ""'
放入类防御来定义类变量,然后在每个实例中覆盖它。self
。