Python教程

python高级编程总结

本文主要是介绍python高级编程总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python中一切皆对象

一切皆对象得含义就是每一个都有自己得属性,每一个都有自己得继承关系,你看到没有继承得,其实它隐式继承了object或者type。关于type可以看看元类。是对象意味着它可以随时随地得使用,比如赋值给一个变量,添加到列表中,作为参数出传递,做返回值

Python语言特性

Python是动态强类型语言
动态还是静态指的是编译期还是运行期确定类型
比如定义了一个变量 a = 11
这个时候你并没有运行,但是python已经确定了他的类型是Int
这个时候你的int就是int,不会变成float
强类型转换就是不会发生隐式类型转换

鸭子类型

教条解释:能走,能游泳,能叫就叫鸭子
个人理解:就是一种大类得规范,比如狗,猪,鸡我们统一把他们叫做动物,然后进行动物得抽象
class 动物:
能吃
能喝
能睡
可以看出,我们重点在关注对象得行为,而不是关注他的类型

什么是monkey patch

所谓得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))

python之禅

The Zen of Python
Tim Peters编写的关于Python编程的准则
import this

python3的改进

python3的改进不如说成是python2和python3的区别,详情博客里面找吧,或许写了,现在整理的时候还没写

Python如何传递参数

只要牢记值传递跟引用传递,这就随你发挥了。
共享传参:函数形参获得实参中各个引用的副本

python可变/不可变对象

可变:list/set/dict
不可变:bool/int/float/tuple/str/frozenset

python *args,**kwargs的含义

用来处理可变参数
*args打包成tuple
**kwargs打包成字典

Python的异常

网络请求(超时,连接错误)
资源访问(权限问题,资源不存在)
代码逻辑(越界访问,keyError等)
try…except…else…finally

python的GIL

small tips

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

这篇关于python高级编程总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!