他说python的第一个缺点是慢,第二个缺点是代码不保密。还蛮有趣的。

这个分情况讨论还蛮科学的

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。chmod a+x :给所有人(all)加上可执行(x)权限

小知识点记一下

分行输出

动态语言

地板除

tuple的“不变”指的是tuple的每个元素指向永远不变。但是有些元素的内容可变。


字符串是不可变对象。

默认参数会有坑。



可变参数。nums是一个list,*nums是拆开list,函数内部的numbers是元素组成的tuple。


关键字参数。info是一个dict,**info是拆开dict,相当于city='beijing', gender='female',函数内部的kw是元素组成的dict。

如果要限制关键字参数的名字,就可以用命名关键字参数。

参数组合,哪天报错了再来看。

汉诺塔,棋盘放米,都是2^64-1



在for循环中迭代索引和元素

迭代器

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

reduce()函数


filter()函数

偏函数

私有变量

鸭子类型

dir()

__slots__限制实例属性

Python内置的@property装饰器就是负责把一个方法变成属性调用的

__str__定义print实例时显示的内容

__repr__是为调试服务的,定义直接敲实例变量时显示的内容

定义一个__call__()方法,就可以直接对实例进行调用

pickle模块来实现序列化

json

json序列化class

linux版本多进程fork函数

跨平台版本的多进程multiprocessing模块

pool进程池

多线程threading模块

网友评论