Python中能否组合链式调用lower()、count()等多个字符串方法?
关于Python字符串链式方法调用的合法性解答
你写的name2 = name1.lower().count("a")这种链式调用写法是完全合法、符合Python开发规范的,不属于错误写法,完全可以放心使用。
原因如下:
- Python中字符串的
lower()方法会返回一个全新的小写字符串对象,而count()是所有字符串对象都支持的内置方法,所以直接在前一个方法的返回值上调用下一个方法是Python语法原生支持的特性,完全符合语言设计逻辑。 - 这种写法是Python社区非常常见的精简写法,只要链式调用的长度控制在合理范围内(一般3个以内的方法调用不会影响可读性),不仅没有规范问题,反而比额外声明中间变量的写法更简洁,执行效率也没有差异。
如果后续你需要串联更多字符串处理方法,为了保证可读性可以按照PEP8规范加括号换行,示例如下:
name2 = ( name1.strip() .replace("-", "") .lower() .count("a") )
内容的提问来源于stack exchange,提问作者jags
相关产品推荐
相关产品推荐

