Python日常开发笔记

Python日常

1.python list 迭代删除 foreach 可采用从后往前遍历的方式。
2.python str不能直接赋值,可先转list 再join回去
如: l = list(‘a,b,c’)
str = ‘’.join(l)
3.python enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

4.python中元类的使用。 元类是type类型,通过元类可动态定制某一种类,例如可通过元类定制一种将多个类的方法、对象等合并到一起的类。

5、充分利用python and的短路原则:可减少if/else带来的代码
callback and callback(True) 当callback为空的时候就不执行callback(true)

6.python列表前面加*:列表前面加星号作用是将列表解开成两个独立的参数,传入函数,字典前面加两个星号,是将字典解开成独立的元素作为形参。

7.python discard() 方法用于移除指定的集合元素。该方法不同于 remove() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

8.from import 在使用时可能会导致循环导入的问题,import不会,或者在用到的函数里导入

9.inspect模块可用于获取对象属性,方法、源码等,如inspect.getsource(object)以str形式返回python源码

10.generator python生成器的使用,采用yield关键字可以让程序从yield处返回一个iterator

11.私有成员:__func() 在外部可通过_class__func()访问

12.通过A.register(B) 可将B类注册为A类,使得B变为A的子类,但是B并不继承A的方法

13.闭包: 当内嵌函数体内引用到体外的变量时,将会把定义时涉及到的引用环境和函数体打包成一个整体(闭包)返回

14.python规则指定所有在赋值语句左面的变量都是局部变量 闭包中使用形如a = a + 1的赋值语句时需要注意

15.Python新式类MRO搜索算法不只是简单的广度优先搜索,搜索的时候会判断一个类是否是Good Head即是否有其他类在后面的搜索路径上继承它,如果没有则是Good head 而且当搜索树的叶子节点发生交叉会导致无法创建类的情况
(mro老算法是深度优先遍历,新算法是深度优先遍历加 非goodhead 剔除,Python2中如果没有继承自object则走老算法)

16.Python中property的使用
primary_tag = property(lambda self: self.profile_info.get(‘primary_tag’, []))
使用self.primary_tag时相当于调用了一次lambda中的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值