Python中设置默认参数full_address=False是否属于Pythonic的良好实践?
关于你提问的默认参数写法是否符合Python规范的解答
首先给明确结论:你这种给新增开关参数设置full_address=False默认值的写法是完全符合Python开发规范的,属于非常典型的Pythonic写法。
合规性说明
- Python官方PEP8规范明确支持可选参数设置默认值的写法,对于这类控制返回格式的布尔型开关参数,默认设置为False是行业通用习惯,不管是Python内置函数还是第三方开源库,大量功能都采用这种设计,既能保留旧版本的调用方式保证向后兼容,又能给用户提供新的可选功能,完全没有问题。
现有代码的优化建议(可进一步提升Pythonic程度)
你现在的代码两个分支里的过滤逻辑是重复的,可以调整下逻辑减少冗余,同时路径拼接不要硬编码\\,跨平台兼容性不好,优化后的参考代码如下:
import os def grab_all_images(address, full_address=False): FORMAT_LST = ('.svg', '.jpg', '.jpeg', '.png', '.jfif') # 先统一过滤符合格式的图片文件 valid_images = [ el for el in os.listdir(address) if os.path.splitext(el)[1].lower() in FORMAT_LST ] # 再根据参数决定返回的路径格式 if not full_address: return valid_images return [os.path.join(address, img) for img in valid_images]
调整后代码更简洁,也能适配Windows、Linux、Mac等不同操作系统的路径规则。
内容的提问来源于stack exchange,提问作者Mert Mint
相关产品推荐
相关产品推荐

