设为首页 收藏本站
查看: 1722|回复: 0

[经验分享] Python and django(三)--python中的对象

[复制链接]

尚未签到

发表于 2015-4-23 10:35:18 | 显示全部楼层 |阅读模式
前面的内容:
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 "", line 1, in
NameError: name 'y' is not defined
>>>

Python对象

Python 使用对象模型来存储数据。构造任何类型的值都是一个对象。

    Python对象特性:

身份:对象的内存地址,使用函数id()得到该值。

类型:使用type()查看对象的类型。

值:对象的数据项。

    Python数据类型

1)基本数据类型

    数字(分为几个子类型,其中有三个是整型)、整型布尔型、长整型、浮点型、复数型、字符串、列表、元组、字典

2)其他内建类型

    类型(type)、Null对象None、文件、集合、函数、模块、类

    Type:

>>> type(23)

>>> type('')

>>> type(())

>>> type([])

>>> type({})

>>> type(True)

>>> type(1.234)

>>> type(int)

>>> type(bool)

>>> type(type(23))

>>> type(type(''))

>>> type(None)


type(type(23))的类型是type,所有类型对象的类型都是type,它也是所有Python 类型的根。

    None—Null对象

None 没有什么有用的属性,它的布尔值总是False。

>>> type(None)

>>> 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可以指定任意精度。


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59967-1-1.html 上篇帖子: Python 代码性能优化技巧(转) 下篇帖子: 搭建S60手机端Python软件运行,开发,发布平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表