Python and django(三)--python中的对象
前面的内容:
python and Django(一) 准备工作
python and Django(二) 走马观花识python
下马看花赏python--python中的对象
语句及语法
语句中的关键词:
# | 注释 | |
\n | 换行 | |
\ | 反斜杠 | 分解过长的语句为多行 |
; | 分号 | 将两个语句连接在一行中 |
: | 冒号 | 将代码块的头和体分开 |
赋值
多元赋值
>>> x,y,z=1,'abc','!@#'
>>> x,y,z
(1, 'abc', '!@#')
多重赋值
>>> x=y=z=1
>>> x,y,z
(1, 1, 1)
>>>
标示符
专用下划线标示符
_xxx 不用'from module import *'导入
__xxx__ 系统定义名字
__xxx 类中的私有变量名
模块
合理布局
#/usr/bin/env python #起始行
"about this module" #模块说明,可通过module.__doc__访问
import sys #模块导入
myvar = True #全局变量
class MyClass(obj): #类定义
'about this Class' #类文档,可通过class.__doc__访问
pass
def myFunction(): #函数定义
'about this function' #函数文档,可通过function.__doc__访问
obj = MyClass();
if myvar:
print 'hi'
if __name__=='__main__': #主程序
myFunction()
内存管理
变量无需指定类型
内存会被自动回收
Del显示释放资源
>>> y=1
>>> y
1
>>> del y
>>> y
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
NameError: name 'y' is not defined
>>>
Python对象
Python 使用对象模型来存储数据。构造任何类型的值都是一个对象。
Python对象特性:
身份:对象的内存地址,使用函数id()得到该值。
类型:使用type()查看对象的类型。
值:对象的数据项。
Python数据类型
1)基本数据类型
数字(分为几个子类型,其中有三个是整型)、整型布尔型、长整型、浮点型、复数型、字符串、列表、元组、字典
2)其他内建类型
类型(type)、Null对象None、文件、集合、函数、模块、类
Type:
>>> type(23)
<type 'int'>
>>> type('')
<type 'str'>
>>> type(())
<type 'tuple'>
>>> type([])
<type 'list'>
>>> type({})
<type 'dict'>
>>> type(True)
<type 'bool'>
>>> type(1.234)
<type 'float'>
>>> type(int)
<type 'type'>
>>> type(bool)
<type 'type'>
>>> type(type(23))
<type 'type'>
>>> type(type(''))
<type 'type'>
>>> type(None)
<type 'NoneType'>
type(type(23))的类型是type,所有类型对象的类型都是type,它也是所有Python 类型的根。
None—Null对象
None 没有什么有用的属性,它的布尔值总是False。
>>> type(None)
<type 'NoneType'>
>>> print None
None
>>> bool(None)
False
>>>
3)内部类型
代码、帧、跟踪记录、切片、省略、Xrange、
基本类型运算符
1)对象值比较
>>> 1==1
True
>>> 1>2
False
>>> 'a'>'b'
False
>>> [1,'a']==['a',1]
False
>>> [1,'a']==[1,'a']
True
>>>
2)对象身份比较 is,is not
变量是否指向同一个对象。
Python 通过传递引用来处理对象。
>>> a=4.8
>>> b=a
>>> id(a)
14122408
>>> id(b)
14122408
>>> a is b
True
>>> a=4.8
>>> b=4.8
>>> id(a)
14122456
>>> id(b)
14122392
>>> a is b
False
>>>
整数对象和字符串对象,会有缓存,如下:
>>> a=4
>>> b=4
>>> id(a)
3629932
>>> id(b)
3629932
>>> a is b
True
>>> a='abc'
>>> b='a'+'bc'
>>> id(a)
19855328
>>> id(b)
19855328
>>> a is b
True
>>>
3)bool类型运算符
And or not
>>> a=True
>>> b=False
>>> a and b
False
>>> a or b
True
>>> not a
False
>>> not b
True
>>>
基本类型内建函数
type()、str()、cmp()、repr()和``。
type:得到对象类型,上面有介绍。
cmp:比较两个对象obj1 和obj2, 如果obj1 小于obj2, 则返回一个负整数,如果obj1 大于obj2 则返回一个正整数, 如果obj1 等于obj2, 则返回0。
>>> a,b=1,2
>>> cmp(a,b)
-1
>>> cmp(b,a)
1
>>> b=1
>>> cmp(a,b)
0
>>> a,b='a','b'
>>> cmp(a,b)
-1
>>> cmp(b,a)
1
>>> b='a'
>>> cmp(a,b)
0
str:生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值, 但很适合用于 print 语句输出。
repr和``:返回对象的“官方”字符串表示,绝大多数情况下可以通过求值运算(使用eval()内建函数)重新得到该对象。
repr和``输出对 Python 比较友好,而str()的输出对人比较友好。
>>> a=str(2e10)
>>> a
'20000000000.0'
>>> eval(a)
20000000000.0
>>> a=repr(2e10)
>>> a
'20000000000.0'
>>> eval(a)
20000000000.0
>>> a=`2e10`
>>> a
'20000000000.0'
>>> eval(a)
20000000000.0
在我上面的这个例子中,str也可以用eval求值。
标准类型其他分类
1)描述
“基本”,是指这些类型都是Python 提供的标准或核心类型。
“内建”,是由于这些类型是Python 默认就提供的
“数据”,因为他们用于一般数据存储
“对象”,因为对象是数据和功能的默认抽象
“原始”,因为这些类型提供的是最底层的粒度数据存储
“类型”,因为他们就是数据类型
2)存储模式
标量/原子类型: 数值(所有的数值类型),字符串(全部是文字)
容器类型:列表、元组、字典
3)更新模式
可变类型:列表,字典
不可变类型: 数字、字符串、元组
4)访问模式
直接访问: 数字
顺序访问: 字符串、列表、元组
映射访问: 字典
5)总
数据类型 | 存储模型 | 更新模型 | 访问模型l |
数字 | Scalar | 不可更改 | 直接访问 |
字符串 | Scalar | 不可更改 | 顺序访问 |
列表 | Container | 可更改 | 顺序访问 |
元组 | Container | 不可更改 | 顺序访问 |
字典 | Container | 可更改 | 映射访问 |
Python目前不支持类型
char&byte:
指针:
int vs short vs long:python中的int类似于长整型。
float VS double:python中的float类似于双精度。另python中有Decimal可以指定任意精度。
以上是 Python and django(三)--python中的对象 的全部内容, 来源链接: utcz.com/z/386465.html