如何用更Pythonic的方式根据列表长度设置tkinter控件高度
更Pythonic的实现方式
最通用、适配所有Python版本的写法是组合使用max和min内置函数,一行即可完成判断:
lb_height = max(5, min(len(self.content), 10))
逻辑说明
- 内层
min(len(self.content), 10)先对上限做限制:列表长度超过10时返回10,否则返回实际长度 - 外层
max(5, 上一步结果)再对下限做限制:数值小于5时返回5,否则返回原值 - 完全匹配需求,且仅调用一次
len(),没有冗余的分支判断,可读性和简洁度都更高
如果你使用的是Python 3.10及以上版本,还可以用标准库新增的裁剪函数,写法更直观:
import math lb_height = math.clip(len(self.content), 5, 10)
math.clip的作用就是把第一个参数的值限制在后两个参数指定的[最小值, 最大值]区间内,和需求完全对应。
内容的提问来源于stack exchange,提问作者mnikley
相关产品推荐
相关产品推荐

