我在使用Python内联函数很有趣,想知道这是否有可能。
我正在使用click模块,并且正在使用其提示功能,并将输入的值添加到列表中。但是,如果在提示中未输入任何内容,我想添加“ **空**”。现在,“点击”具有默认值,但我不会在其中输入默认值,因为这时提示符将显示“名称[**空**]”而不是“名称[]”。
所以我想到的就是这个。如果提示返回“”(空),则应附加“ **空**”。我觉得我快要拥有了。但这只是运行代码的结尾,而是将一个空的''项目附加到列表中。不是我的文字''**空**'。
所以代码看起来像这样:
item = []
item.append(click.prompt("Name", default = '') if not '' else '** empty **')
我查看它的方式click.prompt()是一个返回值的函数。如果未输入任何内容,则默认值=”应告诉它返回”。所以我要实现的是,如果click.prompt()返回'',则应将'**空**'追加到列表中。就是行不通。如前所述,它附加了“。
答案 0 :(得分:1)
这将起作用:
int
您的表情是
item.append(click.prompt("Name", default='') or '** empty **')
这与:
click.prompt("Name", default = '') if not '' else '** empty **'
但是if not '':
item.append(click.prompt("Name", default=''))
else:
item.append('** empty **')
始终为true,因为not ''
始终为false。因此,您总是要附加用户输入的字符串,包括空字符串。
答案 1 :(得分:0)
@Ned的解决方案是最好的:
[] -> {3: []} -> {2: {3: []}} -> {1: {2: {3: []}}}
或者做一些与您做的事情类似的事情:
item.append(click.prompt("Name", default='') or '** empty **')
当然也可以,(但是运行c=click.prompt("Name", default = '')
item.append(c if c else '** empty **')
两次,所以最好只运行一次):
click.prompt("Name", default = '')