Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75143
  • 博文数量: 19
  • 博客积分: 372
  • 博客等级: 二等列兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-20 14:01
文章分类

全部博文(19)

文章存档

2010年(19)

分类:

2010-05-17 23:51:37

1、  赋值并不是直接将一个值赋给一个变量, 尽管你可能根据其它语言编程经验认为应该如此。Python 语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。一切皆为对象。

Python 的赋值语句不会返回值,但可以链式赋值

>>> x  = 1

>>> y = (x = x + 1)

Traceback (  File "", line 1

    y = (x = x + 1)

           ^

SyntaxError: invalid syntax

>>> y = x = x + 1

>>> x,y

(2, 2)

 

>>> x = y = z = 1

在上面的例子中,一个值为1的整数对象被创建,该对象的同一个引用被赋值给 xy z 。也就是将一个对象赋给了多个变量。

多元赋值:要用括号括起,相当于一个元组

>>> x,y = 1,2

>>> x

1

>>> y

2

>>> x,y = y,x   #无须中间变量就可以实现互换,很方便

>>> x

2

>>> y

1

 

2、  标识符

􀁺 _xxx 不用'from module import *'导入

􀁺 __xxx__系统定义名字

􀁺 __xxx 类中的私有变量名

3文档

Python 还提供了一个机制,可以通过__doc__特别变量,动态获得文档字串。在模块,类声明,或函数声明中第一个没有赋值的字符串可以用属性obj.__doc__来进行访问,其中obj是一个模块,类,或函数的名字。这在运行时刻也可以运行。

4、  风格

模块风格

# (1) 起始行(Unix)

# (2) 模块文档——简要介绍模块的功能及重要全局变量的含义,模块外可通过 module.__doc__ 访问这些内容。

#(3) 模块导入——

# (4) 变量定义——这里定义的变量为全局变量尽量不要使用全局变量

# (5) 类定义

# (6) 函数定义

# (7) 主程序

推荐代码风格:主程序调用main()函数

主程序代码通常都和你前面看到的代码相似,检查 __name__ 变量的值然后再执行相应的调用(参阅下一页的核心笔记)。主程序中的代码通常包括变量赋值,类定义和函数定义,随后检查__name__来决定是否调用另一个函数(通常调用main()函数)来完成该模块的功能。主程序通常都是做这些事。

如果模块是被导入, __name__ 的值为模块名字

如果模块是被直接执行, __name__ 的值为 '__main__'

 

5、  得好好理解一下引用计数的概念和意义。

6核心技巧:使用局部变量替换模块变量。

阅读(2801) | 评论(0) | 转发(0) |
0

上一篇:python核心编程(第二章习题)

下一篇:没有了

给主人留下些什么吧!~~