• 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
      • 只接收cityjob作为关键字参数
      • 如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*
      • 命名关键字参数必须传入参数名
    • 参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
  • 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学习——廖雪峰网站相关推荐

  1. 自学python推荐廖雪峰网站

    推荐廖雪峰的python教程,适合小白的Python新手教程,具有如下特点:中文,免费,零起点,完整示例,基于最新的Python 3版本. 官方网站:https://www.liaoxuefeng.c ...

  2. 《python(廖雪峰课程)》学习笔记

    <python(廖雪峰课程)>学习笔记(个人检索) 1. 第一个python程序 input & output print输出字符串可以用""or'' prin ...

  3. 02-Python解释器-Python笔记-廖雪峰

    02-Python解释器-Python笔记-廖雪峰 CPython 官方版本的解释器:CPython.这个解释器是用C语言开发的,所以叫CPython. IPython IPython是基于CPyth ...

  4. 【python】廖雪峰学习笔记

    廖雪峰python学习笔记 Python解释器 python 基础 输入输出 数据类型和变量 字符串和编码 list和tuple dict和set del删除的是变量,而不是数据 函数 高级特性 函数 ...

  5. python教程廖雪峰云-Python教程

    [TOC] ### 教程简介 这是小白的Python新手教程,具有如下特点: **中文,免费,零起点,完整示例,基于最新的Python 3版本.** Python是一种计算机程序设计语言.你可能已经听 ...

  6. 廖雪峰python视频教程-廖雪峰Python教程的配套视频教程,全套完整版!

    事实上,我很久以前就用Python编写了一个简单的爬虫程序.爬网站数据或图片真的很有趣.但我并没有系统地研究过Python,所以我总是有点痴迷. 另外,从我个人的感觉来看,人类无法阻止Python的发 ...

  7. 开课吧python怎么样-廖雪峰官方大数据分析课程,第七期对外开放,前20名直降2000元!!!...

    数据分析是程序员或者机器学习从业者最基本的一项技能,对数据进行掌握了解可以迅速抓住业务主线和数据特征! 关于数据分析的学习资料网上一抓一大把,但是一提项目实践,很多人表示手上没有数据源,不知道完整的一 ...

  8. python 多线程 廖雪峰_Python 一篇学会多线程

    多线程和多进程是什么自行google补脑,廖雪峰官网也有,但是不够简洁,有点晕,所以就整个简单的范例. 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用 ...

  9. 廖雪峰python教程有用吗_后怕!当初要是坚持学Python用廖雪峰教程,我肯定坚持不了39天...

    关于昨天最后遗留的问题,请利用循环依次对list中的每个名字打印出Hello, xxx! 感谢@平淡如盐 .@恁一剑的风情 .@活力_老汤 .@庆林8791 等朋友在评论区以及@一清一凉 在群里给我的 ...

最新文章

  1. BZOJ2631tree——LCT
  2. Package xxx is not available, but is referred to by another package
  3. Android Activity和Fragment的转场动画
  4. java 大臣的旅费_PREV-9-蓝桥杯-历届试题-大臣的旅费-java
  5. 【去广告首选】优酷云-A站-B站-优酷-乐视-搜狐--pptv 接口分享
  6. 数组索引必须为正整数或逻辑值是什么意思_贪心算法:K次取反后最大化的数组和...
  7. redhat linux7.0的安装
  8. winform 判断控件有没有被遮挡_编程入门基础之 winform(2)
  9. Java Web项目在Linux服务器自动化部署
  10. java源码依赖分析_Spring项目运行依赖spring-contex解析
  11. 比例化简 详解(C++)
  12. 三相同步电机怎么接线图_三相异步电机的正反转原理图解
  13. 自动控制——2、为什么用微分方程来表示线性定常系统
  14. 【Pyecharts | Scatter】气泡图实现 / 1990 与 2015 年各国家人均寿命与GDP
  15. Retrofit的封装
  16. 一个屌丝程序猿的人生(六十三)
  17. 基于LBS的六边形热力图算法
  18. Android程序报错:Unable to add window——token android.os.BinderProxy@431e65b8 is not valid
  19. “太湖论道 数字制造——世界物联网博览会·工业大数据峰会”成功召开!
  20. abbplc型号_ABB AC500系列PLC

热门文章

  1. 20189200余超 2018-2019-2 移动平台应用开发实践第十一周作业
  2. QT实现滑动切换界面,ARM/Linux触屏滑动切换界面,切换Qwidget
  3. 如何做一名好的软件开发的销售精英
  4. adb操作提示Read-only file system问题
  5. Atcoder 284题解
  6. 抖音跳转微信加好友功能实现解析
  7. Linux 监控工具之Cacti使用详解(一)
  8. 前后端不分离到分离演变,优势,前后端接口联调,排错
  9. 为什么说 NLP 将是未来数据领域的珠峰?
  10. canvas scale()画布缩放的使用