Python笔记(2) Python基础
- 1. 解释器
- 2. 编码
- 3. 标识符
- 4. 程序入口
- 5. 模块
- 6. 包
1. 解释器
经常可以看到 Python 源码文件中第一行经常出现下面这行代码:
#!/usr/bin/python
是用来说明脚本语言是 python 的,要用/usr/bin下面的程序 python 这个解释器,来解释 python 脚本,来运行 python 脚本的
即 指定用什么解释器运行脚本以及解释器所在的位置
2. 编码
偶尔可以看到 Python 源码文件中第二行经常出现下面这行代码:
# -*- coding: utf-8 -*-
默认情况下,Python 2 源码文件以 ASCII 编码,为了提高兼容性,经常设置以 UTF-8 编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串
所以只用在 Python 3 源码文件比较少见到
当然也可以为源码文件指定不同的编码
3. 标识符
在 Python 里,标识符由字母、数字、下划线组成
但 不能以数字开头,并且区分大小写
以下划线开头的标识符是有特殊意义的:
-
以单下划线开头 _foo 的代表:不能直接访问的类属性
需通过类提供的接口进行访问,不能用from xxx import *
而导入 -
以双下划线开头的 __foo 代表: 类的私有成员
-
以双下划线开头和结尾的__foo__代表:特殊方法专用的标识
如__init__ () 代表类的构造函数
4. 程序入口
在一个.py文件中,如果不是在定义函数,也就是说不是在def关键字的内嵌结构内
python会默认其余部分函数是main函数,并自动执行
但正规工程中,一般都会将main函数写为:
if __name__ == "__main__"
假设test1.py文件为:
print("Test1 one")
def SayHello():
print("Hello World")
SayHello()
print("Test1 two")
假设test2.py文件为:
print("Test2 one")
def SayHello():
print("Hello World !")
if __name__ == "__main__":
SayHello()
print("Test2 two")
通过运行test3.py文件查看调用的程序入口:
import test1
print()
import test2
# Test1 one
# Hello World !
# Test1 two
#
# Test2 one
可以看出test2.py文件 if __name__ == "__main__":
部分没有执行
因为每个模块都有一个__name__属性
当其值是’main’时,表明该模块自身在运行,而不是被引入
所以,在模块被引入时,希望模块中的某一程序块不执行
可以用__name__属性来使该程序块仅在该模块自身运行时执行
5. 模块
用 python 解释器来编程,如果从 Python 解释器退出再进入
那么定义的所有的方法和变量就都消失了
为此 Python 提供了一个办法,把这些定义存放在文件中
能定义函数,类和变量,模块里也能包含可执行的代码
为一些脚本或者交互式的解释器实例使用,这个文件被称为模块
模块是一个包含了 对象定义和语句的文件,其后缀名是.py的文件
模块可以被别的程序引入,以使用该模块中的函数等功能
下例是个简单的模块 support.py:
def print_func(par):
print("Hello,", par)
return
模块定义好后,可以使用 import 语句来引入模块
import support
support.print_func("kaka")
# Hello, kaka
一个模块只会被导入一次,不管执行了多少次import
这样可以防止导入模块被一遍又一遍地执行
6. 包
包是一个分层次的文件目录结构
它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境
但该文件夹下必须存在__init__.py文件, 该文件的内容可以为空,用于标识当前文件夹是一个包
如果把刚刚的 support.py文件放在同目录的 /test文件夹中
通过 from 包 import 文件 调用
from test import support
support.print_func("kaka")
# Hello, kaka
参考:
Python 基础教程 | 菜鸟教程
中文 Python 笔记
相关推荐:
Python笔记(1) Python简介
谢谢!
更多推荐
Python笔记(2) Python基础
发布评论