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
(
111)
>>>

标示符

专用下划线标示符

_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 1in <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)对象身份比较 isis 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
>>> 

3bool类型运算符

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 longpython中的int类似于长整型。

float VS doublepython中的float类似于双精度。另python中有Decimal可以指定任意精度。

 

原文地址:https://www.cnblogs.com/tenghoo/p/Python_django_object.html