Python Another Digest

csdn 居然支持 markdown了, 强烈点个赞!

Python Another Digest

python用作工作语言也快一年了,当年接触的时候也就跟着老师快速过了一周的PPT, 从来没有系统地买过一本Python书细细阅读过
正好室友有本python基础教程,趁着这个机会炒一次回锅肉!

再读python

一些曾经不曾注意的细节

Dict

  • python collection中的超实用类:Counter, deque, OrderedDict(按插入顺序)
  • Dict的key可为int(以前都不知道), 同lua table; 但key一定是 immutable (不可变)
  • “%(Ceil)” % phonebook 会自行抽取phonebook[“Ceil”]当做值替换,template正是如此,{{ count }}
dict, list 中每项都是指针, 必须deepcopy 才能隔离原值
dict.iteritems() 返回迭代器
.items()返回列表, 前者迭代更高效(不用生成列表)
dict.popitem() 随机弹出一个

杂项

  • 比较运算: x == y 比值 x is y 比指针;
  • 上文用C类比为: *x == *y; x == y 比较指针本身
  • zip 打包(联合) 多个list, 长度已短为准;
zip([1,2], ['a', 'b', 'c']) 
-->[(1, 'a'), (2, 'b')]
  • for index, string in enumerate(strings): index 代表第几个(从零开始), 再也不用 index = 0 在循环里 index += 1了!
  • reversed() 返回迭代器, sorted() 返回列表
for ...:
    ...
    break
else:  # 在for未触发break时 执行
   ...
  • del x 只删引用,x指向的内存只能 garbage collection
  • exec 可把string 当python 代码执行,为了安全用scope作为sandbox
    scope = {}
    exec string in scope
  • callable(x) 判断 x 是否可调用; ( 3.0 更改为 hasattr(func, all)
  • help(x) 会把 x 的 docstring, func(params) 全打印出来
  • def print_params( * params, **param_dict) 前者元组, 后者字典
  • vars() 返回当前作用域;locals 局部作用域;globals全局作用域
  • 函数嵌套多用于闭包(closure) = func + 作用域
  • 多态, duck typing, class中定义德method绑定了self
  • __method 私有方法被翻译为 _classname__method
  • issubclass(superclass, subclass) 判断是否继承关系
  • bases 得到基类(们,当多重继承时)
try:
except ( , ) as e:  # 获得异常变量
    raise  # 把异常交给上层函数
else:  # 没有触发异常时执行
finally:  # 总会执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值