《Python核心编程》第二版
3.1.2 继续(/)
- 可以使用反斜杠分解成几行
- 在使用闭合操作符时,单一语句可以跨多行,例如:含有小括号,中括号,花括号时,可以多行数写
- 三引号包括下的字符串也可以跨越多行。注意是三引号,不包含单引号和双引号,他们需要使用反斜杠换行。
a = 'asdf' \ 'asdf'
3.1.6 模块
- 每一个Python脚本文件都可以被当成是一个模块。模块以磁盘文件的形式存在。模块里的代码可以是一段直接执行的脚本。也可以是类似库函数的代码,从而可以被别的模块导入(import)调用。
3.2.1赋值操作符
Python的赋值语句不会返回值。类似下面的语句在Python中是非法的。
x = 1
y = (x = x +1) #赋值语句不是合法表达式。
???这个在c 或java中是可以的。同时,赋值语句的值就是赋值运算左侧的值,即 x的值。
int x = 1;
int y = (x= x +1);
printf("x is %d, y is %d",x,y); /*C 语言实现*/
输出结果:
x is 2, y is 2
int x = 1;
int y = (x= x +1);
System.out.println("x is "+x+", y is "+y); // java实现
输出结果:
x is 2, y is 2
链式赋值没问题,比如
>>>y = x = x + 1 # 脱裤子放屁,这不是一样嘛,反正记住语法不可以就行。
3.2.2 增量赋值
Python不支持类似 x++ 或 --x 这样的前置/后置自增/自减运算。
3.3.4 专用下划线标识符
- _xxx 不用 from module import *
- _xxx_ 系统定义名字
- _xxx 类中的私有变量
3.4 基本风格指南
- 可以通过__doc__(注意这里是双下滑线 _ _ 两根哦) 特别变量,动态获得文档字符串。在模块、类声明、或函数声明中第一个没有赋值的字符串可以用属性obj.__doc__ 来进行访问,其中obj是一个模块、类或函数的名字。
'''This is the description of this module, balabala'''
aList = [1, 2 , 3]
print( aList)
print( __doc__ )
以下是输出结果
[1, 2, 3]
This is the description of this module, balabala
>>>
感觉这里需要补一部分特殊变量的知识:
1,__name__
2,__file__ 文件所在的路径
print(__file__)
print(os.__file__)
输出结果:
D:/python/workspace/test.py
D:\python\lib\os.py
这里还挺有意思,路径的分隔符 竟然不一样!!!!
3.4.1 模块结构和布局
- __name__ (前后两个下划线 _ _ name _ _ ) 系统变量指示模块应被如何加载
- 如果模块是被导入,__name__的值为模块名字
- 如果模块是被直接执行,__name__的值为 ‘__main__’
这个跟java的那一套很像啊。自测模块,public static void main() .只要不运行,就不会走。
'''这样这个模块只有是主程序的时候,才会运行mainfun()这个函数。 '''
if __name__ == '__main__':
mainfun()