一切皆对象得含义就是每一个都有自己得属性,每一个都有自己得继承关系,你看到没有继承得,其实它隐式继承了object或者type。关于type可以看看元类。是对象意味着它可以随时随地得使用,比如赋值给一个变量,添加到列表中,作为参数出传递,做返回值
Python是动态强类型语言
动态还是静态指的是编译期还是运行期确定类型
比如定义了一个变量 a = 11
这个时候你并没有运行,但是python已经确定了他的类型是Int
这个时候你的int就是int,不会变成float
强类型转换就是不会发生隐式类型转换
教条解释:能走,能游泳,能叫就叫鸭子
个人理解:就是一种大类得规范,比如狗,猪,鸡我们统一把他们叫做动物,然后进行动物得抽象
class 动物:
能吃
能喝
能睡
可以看出,我们重点在关注对象得行为,而不是关注他的类型
所谓得monkey patch就是运行时替换
def func1(): print('func1') def func2(): print('func2') func1() func1 = func2 func1()
赶脚就像是给找个新得内存空间
运行时判断一个对象运行的能力
python一切皆对象,用type,id,isinstance获取对象类型信息
Inspect模块提供了更多获取对象信息的函数
用一行循环遍历出一系列数据的方式
推导式在使用的时候只能用for循环和if判断,if只能是单项判断
# 多循环推导式:就是求并集 list1 = ['a', 'b', 'c'] list2 = ['x', 'y', 'z'] lst = [i + "♥" + j for i in list1 for j in list2]
获取的数据在字典
内置方法:enumerate:枚举,将索引和iterable中的值,一个一个拿出来配对组成
zip:将多个iterable中的值一个一个拿出来配对成元组放入迭代器中
# 多循环推导式:就是求并集 list1 = ['a', 'b', 'c'] list2 = ['x', 'y', 'z'] lst = [i + "♥" + j for i in list1 for j in list2] print(lst) lst = zip(list1,list2) # print(list(lst)) print(dict(lst))
The Zen of Python
Tim Peters编写的关于Python编程的准则
import this
python3的改进不如说成是python2和python3的区别,详情博客里面找吧,或许写了,现在整理的时候还没写
只要牢记值传递跟引用传递,这就随你发挥了。
共享传参:函数形参获得实参中各个引用的副本
可变:list/set/dict
不可变:bool/int/float/tuple/str/frozenset
用来处理可变参数
*args打包成tuple
**kwargs打包成字典
网络请求(超时,连接错误)
资源访问(权限问题,资源不存在)
代码逻辑(越界访问,keyError等)
try…except…else…finally
is比较id值
pyenv启动不同的python版本
高级解包操作:a,b,*rest = range(10)
慕课网
推导式:https://blog.csdn.net/sinat_41672927/article/details/106180784
GIL:
https://www.cnblogs.com/SuKiWX/p/8804974.html