Python 基础
2015-10-23 11:15
447 查看
动态类型
从概念上将,Python将会执行三个不同步骤去完成这个操作:
创建一个对象表示3
创建一个变量,如果它还没有被创建
将变量与新的对象3连接
实际效果如图所示:
变量总是连接到对象上,并且绝对不会连接到其他变量上,但是更大的对象可能连接到其他的对象。
变量是一个系统表的元素,拥有指向对象的连接的空间
对象是分配的一块内存,由足够的空间去表示它们所代表的值
引用是自动形成从变量到对象的指针
作用域
python 的变量名解析机制成为LEGB原则:当函数中使用未认证变量名时,python会搜索4个区域[本地作用域L,上一层结构的def或lambda的本地作用域,之后是全局作用域G,最后是内置作用域B],并且在在第一处能够找到这个变量名的地方停下来,如果没有找到此变量名就会报错。
当函数给一个变量名赋值时,Python总是创建或改变本地作用域的变量名,除非它在函数中已经声明为全局变量global。
当在函数外给一个变量赋值时,本地作用域与全局作用域是相同的。
Import如何工作
import 执行的3个步骤:找到模块代码
编译成位码(如果需要,比如源文件被修改)
执行模块代码来创建其所定义的对象
这三个步骤,只有模块在第一次导入时才会进行。当再次导入时,会跳过以上三个步骤,直接提取内存中已加载的对象。
类与OOP
类vs实例:类是生产实例的工厂类vs模块:内存中特定模块只能有一个实例,类可以可以有多个实例
类接口技术:
Super 定义一个method函数以及在子类中期待一个动作的delegate
Inheritor 没有提供任何变量名,会继承Super定义的一切内容
Replacer 用自己的版本覆盖Super的method
Extender 覆盖并回调默认的method,从而定制Super的method
Provider 实现Super的delegate方法预期的action方法
相关文章推荐
- python 日志打印
- python中编码问题——unicode, gbk, utf8
- 堆排序python实现
- Python中logging模块的使用
- vim - Run python code in vim editor
- python读写文件,和设置文件的字符编码比如utf-8
- Python函数_参数的多类型传值
- python多进程断点续传分片下载器
- Python中文编码问题
- python unittest
- python基础
- mac python eclipse
- 源码安装python
- windows numpy包安装
- windows下ipython的tab补全,只需安装pyreadline即可.
- Mac下iPython-notebook搭建及使用
- python生成器实战,八皇后问题
- Python字符编码详解
- Python中序列的切片和加号
- 一个python写的批量修改proto包名的命令行工具