Python编码小技巧

快速定义类

import collections
MyClass = collections.namedtuple("MyClass", ["member1", "member2", "member3"])
k = MyClass(1,2,3)
print(k)

输出:

MyClass(member1=1, member2=2, member3=3)

实现len、str、迭代器方法

在自定义类中重构__len__,__repr__,__getitem__ 三个方法

显式指定变量的类型

注意只支持python3.4及以上

import queue, multiprocessing
list = []
list.append(queue.Queue())
list.append(multiprocessing.Queue())
q: queue.Queue = list[0]
q2: multiprocessing.Queue = list[1]
q.put_nowait(None)
print(q2)

通过 var: type 来显式告诉编辑器这个变量的类型,有几个好处:

  • 方便阅读
  • 引导编辑器进行正确代码提示

快速获取dict中的键值setdefault()

setdefault这个函数名其实是有一定迷惑性的,有些业务如下:

dic = {"a":"a", "b","b"}
# 当我们想要获取c的时候往往需要先判断再获取:
if dic.get("c") is None:
	dic["c"] = "c"
return dic["c"]

可以通过setdefault来大幅度降低编码长度并提高性能:

dic = {"a":"a", "b","b"}
return dic.setdeafult("c", "c") # 如果c被设置成了其他值也只会返回新的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值