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 里,标识符由字母数字下划线组成
不能以数字开头,并且区分大小写

以下划线开头的标识符是有特殊意义的:

  1. 以单下划线开头 _foo 的代表:不能直接访问的类属性
    需通过类提供的接口进行访问,不能用 from xxx import * 而导入

  2. 以双下划线开头的 __foo 代表: 类的私有成员

  3. 以双下划线开头和结尾的__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基础