Python 进阶 16 个神仙炫技操作!看懂大佬源码全靠它

张开发
2026/4/20 10:17:56 15 分钟阅读

分享文章

Python 进阶 16 个神仙炫技操作!看懂大佬源码全靠它
Python进阶16个必须掌握的炫技操作可读性优先学习炫技核心目的读懂他人代码实际开发代码量相近时优先通俗写法反对为炫而炫可读性 效率无明显效率差异时1. and 和 or 的取值顺序所有值为真时or取第一个值and取第二个值示例(2or3)*(5and7)14# 2 * 72. 访问类的私有方法遵循封装原则将私有方法封装为公有方法对外调用不直接访问私有方法classAuth:def__init__(self,name,password):self.namename self.passwordpassword# 私有方法双下划线开头def__login(self):ifself.nameadminorself.password123456:returnTruereturnFalse# 公有封装方法deflogin(self):ifnotself.name:print(登录名称不能为空)returnFalseifnotself.password:print(登录密码不能为空)returnFalsereturnself.__login()3. 快速启动FTP/HTTP服务Python3 一行命令启动本地文件服务默认当前目录python3-mhttp.server88884. 列表连接的3种方式a[1,2]b[3,4]c[5,6]# 方式1sum合并print(sum((a,b,c),[]))# [1,2,3,4,5,6]# 方式2 运算符最常用print(abc)# 方式3解包合并print([*a,*b,*c])5. 字典合并的3种方式importcopy user{name:NAME,email:EMAIL}profile{gender:gender,age:age}# 方式1update()user1copy.copy(user)user1.update(profile)print(user1)# 方式2双解包推荐print({**user,**profile})# 方式3集合items合并print(dict(user.items()|profile.items()))6. 条件语句的5种写法age20# 1. 标准三元表达式推荐msg成年ifage18else未成年# 2. and-or 链式逻辑msgage18and成年or未成年# 3. 元组索引法msg(未成年,成年)[age18]# 4. Lambda 延迟执行msg(lambda:未成年,lambda:成年)[age18]()# 5. 字典映射法msg{True:成年,False:未成年}[age18]print(msg)# 输出成年7. Linux 格式化查看 JSON 文件cattest.json|python-mjson.tool8. 判断是否包含子串的7种方法常用5种textHello, Python# 1. in / not in最推荐print(Pythonintext)# Trueprint(Javanotintext)# True# 2. find() 方法print(text.find(Python)!-1)# True# 3. index() 方法print(text.index(Python)0)# True# 4. count() 方法print(text.count(Python)0)# True# 5. operator 模块importoperatorprint(operator.contains(text,Python))# True9. 调试利器打印调用栈信息快速获取文件名、函数名、行号排查深层BUGimportsysdefget_cur_info():# 当前文件名print(sys._getframe().f_code.co_filename)# 当前函数名print(sys._getframe(0).f_code.co_name)# 调用方函数名print(sys._getframe(1).f_code.co_name)# 当前行号print(sys._getframe().f_lineno)10. 查看变量内存占用importsys variable30print(sys.getsizeof(variable))# 输出变量占用字节数11. 快速打印重复字符串print(*10)# 输出print(Python *3)# 输出Python Python Python12. 序列解包与转置快速对嵌套列表/元组解包、转置array[[a,b],[c,d],[e,f]]# 解包转置transposedzip(*array)print(list(transposed))# [(a, c, e), (b, d, f)]13. 链式函数调用一行代码根据条件选择执行函数defadd(a,b):returnabdefsubtract(a,b):returna-b a,b4,5# 条件判断后直接调用对应函数print((subtractifabelseadd)(a,b))# 914. 无 if-else 实现计算通过字典映射运算符/函数替代条件判断importoperator# 字典映射运算符 - 对应函数action{:operator.add,-:operator.sub,/:operator.truediv,*:operator.mul,**:pow}print(action[-](50,25))# 2515. 懒人必备下划线_的用法1占位符忽略不需要的变量# 只需要循环5次不需要变量for_inrange(5):print(Hello)2Python 控制台记录上一次执行结果347_7_*214

更多文章