python学习——廖雪峰网站
- python函数参数
- 位置参数——power(x, n)里的x和n
- 默认参数——power(x, n=2)里的n
- 必选参数在前,默认参数在后
- 默认参数必须指向不变对象
- 可变参数——calc(*numbers)里的numbers
- 调用calc——calc(1, 2)
>>> nums = [1, 2, 3] >>> calc(*nums)
- 关键字参数——person(name, age, **kw)里的**kw
- 这些关键字参数在函数内部自动组装为一个dict
def person(name, age, **kw):print('name:', name, 'age:', age, 'other:', kw)>>> person('Michael', 30) name: Michael age: 30 other: {}>>> person('Bob', 35, city='Beijing') name: Bob age: 35 other: {'city': 'Beijing'} >>> person('Adam', 45, gender='M', job='Engineer') name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
**extra
表示把extra
这个dict的所有key-value用关键字参数传入到函数的**kw
参数,kw
将获得一个dict,注意kw
获得的dict是extra
的一份拷贝,对kw
的改动不会影响到函数外的extra
- 命名关键字参数——person(name, age, *, city, job)里的city、job
- 只接收
city
和job
作为关键字参数 - 如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符
*
了 - 命名关键字参数必须传入参数名
- 只接收
- 参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
- python面向对象
- __init__方法初始化属性
- 类中定义的函数第一个参数永远是实例变量self
- 属性名字前面有__两个下划线,表示是私有变量,外部就不能访问了
- 属性名字前面有_一个下划线,表示约定该变量最好不要被外部访问,但是没有强制
- python - 动态语言 - 鸭子类型——不严格的继承体系
- isinstance() 和 dir()
- 类似
__xxx__
的属性和方法在Python中都是有特殊用途的,比如__len__
方法返回长度。在Python中,如果你调用len()
函数试图获取一个对象的长度,实际上,在len()
函数内部,它自动去调用该对象的__len__()
方法 - 由于Python是动态语言,根据类创建的实例可以任意绑定属性
class Student(object):def __init__(self, name):self.name = names = Student('Bob') s.score = 90
- 不要对实例属性和类属性使用相同的名字
__slots__
变量,限制该class实例能添加的属性,对继承的子类没有用- Python内置的
@property
装饰器负责把一个方法变成属性调用 - 多继承
class Dog(Mammal, Runnable):pass
__str__、__iter__、__getitem__、__call__
- 使用元类
- type()
- metaclass允许你创建类或者修改类。换句话说,你可以把类看成是metaclass创建出来的“实例”。
- 进程与线程
对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。
有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。
Python的线程虽然是真正的线程,但解释器执行代码时,有一个GIL锁:Global Interpreter Lock,任何Python线程执行前,必须先获得GIL锁,然后,每执行100条字节码,解释器就自动释放GIL锁,让别的线程有机会执行。这个GIL全局锁实际上把所有线程的执行代码都给上了锁,所以,多线程在Python中只能交替执行,即使100个线程跑在100核CPU上,也只能用到1个核。
Python虽然不能利用多线程实现多核任务,但可以通过多进程实现多核任务。多个Python进程有各自独立的GIL锁,互不影响。
单线程的异步编程模型称为协程
python学习——廖雪峰网站相关推荐
- 自学python推荐廖雪峰网站
推荐廖雪峰的python教程,适合小白的Python新手教程,具有如下特点:中文,免费,零起点,完整示例,基于最新的Python 3版本. 官方网站:https://www.liaoxuefeng.c ...
- 《python(廖雪峰课程)》学习笔记
<python(廖雪峰课程)>学习笔记(个人检索) 1. 第一个python程序 input & output print输出字符串可以用""or'' prin ...
- 02-Python解释器-Python笔记-廖雪峰
02-Python解释器-Python笔记-廖雪峰 CPython 官方版本的解释器:CPython.这个解释器是用C语言开发的,所以叫CPython. IPython IPython是基于CPyth ...
- 【python】廖雪峰学习笔记
廖雪峰python学习笔记 Python解释器 python 基础 输入输出 数据类型和变量 字符串和编码 list和tuple dict和set del删除的是变量,而不是数据 函数 高级特性 函数 ...
- python教程廖雪峰云-Python教程
[TOC] ### 教程简介 这是小白的Python新手教程,具有如下特点: **中文,免费,零起点,完整示例,基于最新的Python 3版本.** Python是一种计算机程序设计语言.你可能已经听 ...
- 廖雪峰python视频教程-廖雪峰Python教程的配套视频教程,全套完整版!
事实上,我很久以前就用Python编写了一个简单的爬虫程序.爬网站数据或图片真的很有趣.但我并没有系统地研究过Python,所以我总是有点痴迷. 另外,从我个人的感觉来看,人类无法阻止Python的发 ...
- 开课吧python怎么样-廖雪峰官方大数据分析课程,第七期对外开放,前20名直降2000元!!!...
数据分析是程序员或者机器学习从业者最基本的一项技能,对数据进行掌握了解可以迅速抓住业务主线和数据特征! 关于数据分析的学习资料网上一抓一大把,但是一提项目实践,很多人表示手上没有数据源,不知道完整的一 ...
- python 多线程 廖雪峰_Python 一篇学会多线程
多线程和多进程是什么自行google补脑,廖雪峰官网也有,但是不够简洁,有点晕,所以就整个简单的范例. 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用 ...
- 廖雪峰python教程有用吗_后怕!当初要是坚持学Python用廖雪峰教程,我肯定坚持不了39天...
关于昨天最后遗留的问题,请利用循环依次对list中的每个名字打印出Hello, xxx! 感谢@平淡如盐 .@恁一剑的风情 .@活力_老汤 .@庆林8791 等朋友在评论区以及@一清一凉 在群里给我的 ...
最新文章
- BZOJ2631tree——LCT
- Package xxx is not available, but is referred to by another package
- Android Activity和Fragment的转场动画
- java 大臣的旅费_PREV-9-蓝桥杯-历届试题-大臣的旅费-java
- 【去广告首选】优酷云-A站-B站-优酷-乐视-搜狐--pptv 接口分享
- 数组索引必须为正整数或逻辑值是什么意思_贪心算法:K次取反后最大化的数组和...
- redhat linux7.0的安装
- winform 判断控件有没有被遮挡_编程入门基础之 winform(2)
- Java Web项目在Linux服务器自动化部署
- java源码依赖分析_Spring项目运行依赖spring-contex解析
- 比例化简 详解(C++)
- 三相同步电机怎么接线图_三相异步电机的正反转原理图解
- 自动控制——2、为什么用微分方程来表示线性定常系统
- 【Pyecharts | Scatter】气泡图实现 / 1990 与 2015 年各国家人均寿命与GDP
- Retrofit的封装
- 一个屌丝程序猿的人生(六十三)
- 基于LBS的六边形热力图算法
- Android程序报错:Unable to add window——token android.os.BinderProxy@431e65b8 is not valid
- “太湖论道 数字制造——世界物联网博览会·工业大数据峰会”成功召开!
- abbplc型号_ABB AC500系列PLC