首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何定义一个非λ的args_converter函数?

如何定义一个非λ的args_converter函数?
EN

Stack Overflow用户
提问于 2017-04-07 16:57:55
回答 1查看 58关注 0票数 0

docs中,可以将args_converter编写为常规函数或lambda函数,但我似乎无法将其与非lambda函数一起使用,而且我看到的所有示例都是lambda。

下面是我的一段代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def groupArgsConv(index, item):
    res = {'text': item['title'],
               'size_hint_y': None,
               'heigth': '25dp'}
    return res

self.ids.grouplist.adapter = ListAdapter(args_converter=groupArgsConv,
                                             data=self.groups,
                                             cls=ListItemLabel)

这不起作用,但这确实起作用了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list_item_args_converter = lambda index, item: {'text': item['title'],
                                             'size_hint_y': None,
                                             'height': '25dp'}

self.ids.grouplist.adapter = ListAdapter(args_converter=list_item_args_converter,
                                             data=self.groups,
                                             cls=ListItemLabel)

为什么?我如何让第一个例子起作用?

EN

回答 1

Stack Overflow用户

发布于 2017-04-08 08:33:48

下面的代码适用于我:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.adapters.listadapter import ListAdapter
from kivy.uix.listview import ListItemLabel, ListView
from kivy.base import runTouchApp

data = [{'title': str(i)} for i in range(100)]

def groupArgsConv(index, item):
    res = {'text': item['title'],
           'size_hint_y': None,
           'height': '25dp'}
    return res

list_adapter = ListAdapter(
    data=data,
    args_converter=groupArgsConv,
    cls=ListItemLabel)

if __name__ == '__main__':
    runTouchApp(ListView(adapter=list_adapter))

你说的“不起作用”是什么意思?您是否在日志中遇到了某种异常或奇怪的输出?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43283481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文