一、学习目录

1、pyhton对象

2、python类型

3、类型操作符与内建函数

4、类型工厂函数

5、不支持类型

二、思考

1、Python解释执行原理?

2、Python对象机制?

3、Python哪些常用类型和内建函数?

4、什么是工厂函数?与内建函数的区别?

三、学习重点总结
资源参考:

1.《Python核心编程 2》

2.互联网

--------------------------------------------------------------------------------------------------------------------------------------------

我承认我的C语言基础比较薄弱,承认自己计算机原理并没有好好学,这才导致了在编程上的一知半解,其实了解底层的东西更加有利于编程的理解。

四、Python中一切皆对象

1、思考1:Python解释执行原理?

参考:http://l62s.iteye.com/blog/1481421

Python使用对象模型来存储数据,构造任何类型的值都是一个对象。所以说在Python的世界中,一切皆对象,一个整数是一个对象,一个字符串也是一个对象,而且类型也是一个对象,整数类型是一个对象,字符串类型也是一个对象。

2、思考2:什么是对象模型?

对象模型技术简介:

对象模型技术(object modeling technique,OMT)是美国通用电气对象模型技术提出的一套系统开发技术。它以面向对象的思想为基础,通过对问题进行抽象,构造出一组相关的模型,这些模型描述了现实世界中“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构,从而能够全面地捕捉问题空间的信息。

对象模型技术特点:

对象模型技术把分析时收到的信息构造在三类模型中,即对象模型、功能模型动态模型。三个模型从不同的角度对系统进行描述,分别着重于系统的一个方面,组合起来构成对系统的完整描述。形象地说,功能模型定义“做什么”,状态模型定义“何时做”,对象模型定义“对谁做”。

面向对象三种模型:

对象模型:描述系统数据结构
动态模型:描述系统控制结构
功能模型:描述系统功能

3、Python对象

身份:唯一性身份标志,是该对象的内存地址,可用内建函数id()获得

类型:对象的类型决定了该对象可以保存什么类型的值,可进行什么样的操作,以及遵循什么样的规则。可以type()获得

值:对象表示的数据项

 >>> s='abc'
 >>> id(s)   #身份
 13434272
 >>> type(s)  #类型
 <type 'str'>
 >>> s  #值
 'abc'

在对象被创建时就已被赋值,除了值之外,其他两个都是只读的。

对象的可改变性(mutability):指对象的值是否可以更改。

面向对象:
:具有同种属性的对象称为类,是个抽象的概念。比如说:汽车、人、狗、神;
对象:日常生活中的所有东西都是对象,是类的实例化。比如说:推土车是汽车的实例化;姚明是人的实例化;小白(狗的名字)是狗的实例化;二郎神是神的实例化;
属性:用来描述具体某个对象的特征的是属性,是静态的。比如:姚明身高2.6米多;小白的毛发是棕色的;二郎神额头上有只眼睛;
方法:每个对象有它们自己的行为或者是使用它们的方法,比如说一只狗会跑会叫等,我们把这些行为称之为方法,是动态的,可以使用这些方法来操作一个对象;
类的成员:属性和方法称为这个对象的成员,因为它们是构成一个对象的主要部分,没有了这两样东西,那么对象也没什么存在意义了。
参考:http://liuyuru.iteye.com/blog/806705

五、Python类型

1、标准类型(基本数据类型)

数字(含子类型)
Integer:整型
Boolean:布尔型
Long integer:长整型
Floating point real number:浮点型
String:字符串
List:列表
Tuple:元组
Dictionary:字典

2、其他类型

类型
Null对象(None)
文件
集合/固定集合
函数/方法
模块

>>> type(type('abc'))
<type 'type'>

这行代码告诉我们:“所有类型对象的类型都是type,它是python类型的根,所有Python标准类的默认元类”

要弄明白:对象类型(对象的类型)和类型对象(类型本身是对象)。

3、简单了解下内部类型

六、内建函数与工厂行数

1、所谓内建函数(Built-in Functions),个人觉得就是自带的、标准的函数,如:

    Built-in Functions    
abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reversed() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set() apply()
delattr() help() next() setattr() buffer()
dict() hex() object() slice() coerce()
dir() id() oct() sorted() intern()

官网参考:http://docs.python.org/2/library/functions.html

2、工厂函数(factory function)

Python2.2统一了类型和类,所有的内建函数现在都也是类,在这基础上,原来的所谓的内建转换函数像int()、type()、list()等,现在都成了工厂函数。虽然看上去像函数,但实质上它们是类,当你在调用它们时,实际上生成了该类的一个实例,就像工厂生产货物一样。

int()、long()、float()、complex()、str()、unicode()、basestring()、list()、tuple()、type()
dict()、bool()、set()、frozenset()、object()、classmethod()、staticmethod()、super()、property()、file()

七、不支持类型

1、char与type

2、指针

3、int vs short vs long

4、float vs double

Python入门笔记(5):对象的更多相关文章

  1. Python学习笔记_Python对象

    Python学习笔记_Python对象 Python对象 标准类型 其它内建类型 类型对象和type类型对象 Python的Null对象None 标准类型操作符 对象值的比較 对象身份比較 布尔类型 ...

  2. [Python]Python入门笔记:语法基础

    Python笔记 一.基本语法 1.1 注释 文档注释: """contents""" 多行注释: ''' contents ''' 单行注 ...

  3. python入门笔记

    创建变量 python的变量不需要声明数据类型. >>> fred=100 >>> print (fred) 100 >>> fred 100 创 ...

  4. Python入门笔记(26):Python执行环境

    一.python特定的执行环境 在当前脚本继续进行 创建和管理子进程 执行外部命令或程序 执行需要输入的命令 通过网络来调用命令 执行命令来创建需要处理的输出 动态生成Python语句 导入Pytho ...

  5. Python入门笔记(25):Python面向对象(2)

    一.类 类就是一个数据结构,封装了数据和操作. 类的声明与函数的声明十分类似: class newClass(object): """class documentatio ...

  6. Python入门笔记(24):Python面向对象(1)速成

    一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'def ...

  7. Python入门笔记(23):模块

    一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用.实际的角度,模块往往对应Python程序文件. 每个文件都是一 ...

  8. Python入门笔记(22):Python函数(5):变量作用域与闭包

    一.全局变量与局部变量 一个模块中,最高级别的变量有全局作用域. 全局变量一个特征就是:除非被删除,否则他们存活到脚本运行结束,且对于所有的函数都可访问. 当搜索一个标识符(也称变量.名字等),Pyt ...

  9. Python入门笔记(20):Python函数(3):关于lambda

    一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的.如下: """命名的foo函数&q ...

随机推荐

  1. [转载]BW增量更新的理解(时间戳)

    在BW中,存在两种数据抽取方式,完全更新与增量更新,完全更新是每次把截至到某个时间的数据全部抽取,增量抽取则只抽取上次和本次抽取之间更新的数据,很显然,增量抽取能够提高系统效率,根据SAP帮 助的说法 ...

  2. [GraphQL] Write a GraphQL Schema in JavaScript

    Writing out a GraphQL Schema in the common GraphQL Language can work for simple GraphQL Schemas, but ...

  3. eclipse 代码提示时闪退问题

    解决办法:在eclipse.ini里面最下面加上这句话 -Dorg.eclipse.swt.browser.DefaultType=mozilla

  4. 【Cocos2d-Js基础教学(7)界面UI更新方法(会用到第三方类库)】

    我们游戏中会遇到很多UI更新的时候,大部分时候我们会remove该节点,再重新绘制的方法来进行UI更新. 但是这种更新效率并不高,这里我推荐大家一个第三方的库,来通过注册更新的方式来对UI进行更新管理 ...

  5. LoadRunner 12试用

    LoadRunner 12试用 http://blog.csdn.net/testing_is_believing/article/details/23611845

  6. Cocos2d-JS项目之四:UI界面的优化

    测试环境: iphone4.iOS6.1.2.chrome 37.2062.60,Cocos2d-js 3.6 之前写了不少,实际项目也按这个去优化了,也有效果,但到最后才发现,尼玛,之前都搞错了,之 ...

  7. 学习使用:before和:after伪元素

    如果你一直密切关注着各种网页设计的博客,你可能已经注意到了:before和:after伪元素已经在前端开发中获得了相当多的关注.特别是在Nicolas Gallagher的博客中,后期运用了很多伪类元 ...

  8. SSAS:菜鸟笔记(一)基本思路及操作

    建模思路 创建数据源 Data Source 创建数据源视图 Data Source View 创建数据维度 Dimenstrition 创建数据立方 Cube → 选定要填充的数据内容 Fact 向 ...

  9. VS2010 项目引用了微软企业库,但是编译时提示:未能找到类型或命名空间名称

    我写的是控制台程序 是在引用我自己写的库 和 Microsoft.Practices.EnterpriseLibrary 时出现的问题 经过分析,和百度 找到了修改方法 打开  项目属性-->应 ...

  10. Android动态设置android:drawableLeft|Right|Top|Bottom 并根据分辨率自适应

    http://blog.sina.com.cn/s/blog_4b93170a0102e1m9.html //调用setCompoundDrawables时,必须调用Drawable.setBound ...