打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
理解Python装饰器看这一篇就够了!
userphoto

2018.01.29

关注


注:

文中有些地方是用2.7开发的,如果您安装的是3.x,有几点需要注意:

  • print 'xxx' 要换成 print('xxx')

  • __metaclass__ = type 删除掉。


类型和表达式部分

你好,世界!

1 # coding=utf-82 3 print '你好,世界。'

乘方

1 print 2**10

变量

1 var = 1
2 print var
3
4 var = '吴峰'
5 print var

注:这里的var = xxxx不叫变量赋值,而叫变量绑定,python维护了一个符号表(变量名)以及符合对应的值,这个对应关系就叫做绑定,一个符号可以绑定任意类型的值。

获取用户输入

1 #获取用户输入
2 x = input('x:')
3 y = input('y:')
4
5 print x*y

注:input接受的是Python代码,输入中可以访问当前执行环境中的变量,如果想获取原始输入需要使用 raw_input。

函数定义

1 def say_b():
2 print 'b'

强类型

Javascript和Php是弱类型的,Python和Ruby是强类型的。弱类型允许不安全的类型转换,强类型则不允许。

字符串

序列

这里先介绍三种序列:列表、元祖和字符串。

序列通用操作

可变的列表

不可变的元祖

字符串格式化

字典

print 语句

序列解包

bool值

bool运算

语句块

:开始语句快,缩进的所有内容都是一个语句块。

三元运算符

1 print('10 > 1' if 10 > 1 else '不可能发生')

相等比较

循环

pass、exec和eval

函数部分

形参和实参之间是按值传递的,当然有些类型的值是引用(对象、列表和字典等)。

作用域

模块

几个模块相关的规则:

  • 一个文件代表一个模块。

  •  可以用import module导入模块,也可以用form module import member导入模块的成员。

  • 如果导入的是module,必须使用module.member进行访问;如果导入的member,可以直接访问member。

  • 导入的module或member都会变成当前module的member。

b.py

a.py

test.py

输出

1 b2 a3 __main__4 a5 b6 b

异常管理

面向对象

先上一张图


几个规则:

  1. 一切都是对象,python中一切都是对象,每个对象都包含一个__class__属性以标记其所属类型。

  2. 每个对象(记得一切都是对象啊)都包含一个__dict__属性以存储所有属性和方法。

  3. 每个类型都包含一个__bases__属性以标记其父类。

  4. 属性和方法的访问规则:依次搜索instance、子类、父类、父类的父类、直到object的__dict__,如果找到就返回。

  5. 属性和方法的设置规则:直接设置instance.__dict__。

  6. 以上属性和方法访问或设置规则没有考虑“魔法方法”,下文会解释。

示例

绑定方法和未绑定方法

绑定方法已经绑定了对象示例,调用的时刻不用也不能传入self参数了。

注:使用对象访问实例方法为何会返回绑定方法?这个还得等到学完“魔法方法”才能解释,内部其实是拦截对方法成员的访问,返回了一个Callable对象。

私有成员

难怪访问不了了,名称已经被修改了,增加了访问的难度而已。

多重继承

如果继承的多个类型之间有重名的成员,左侧的基类优先级要高,上例子Base2会胜出。

接口那里去了,鸭子类型比接口更好用。

调用父类

魔法方法

对象构造相关:__new__、__init__、__del__。

运算符重载:所有运算符都能重载。

属性访问。

集合实现。

可调用对象,像方法一样调用对象。

资源管理

对象描述符。

Mixin(也叫掺入)

掺入模块:playable.py

掺入目标模块:test.py

Open Class(打开类型,从新定义成员)

Meta Programming(元编程)





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[Python 技术培训] 第一周幻灯片 "Python 基础篇"
Python 3.8 新特性全面解读
Python基础(81道题)面试题,做了完了就不用担心入不了门
Python内置函数包含哪些?五大类!
长文总结 | Python基础知识点,建议收藏
Python 2 和 Python 3 主要区别有哪些(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服