在Python中,源文件通常以.py为扩展名,并且可以按照一定的结构进行组织。下面是一个典型的Python源文件的结构示例:
1 # -*- coding: utf-8 -*- 2 3 """模块的文档字符串""" 4 5 # 导入语句 6 import module1 7 from module2 import func1, func2 8 from module3 import * 9 10 # 全局变量定义 11 GLOBAL_VAR = 10 12 13 # 类定义 14 class MyClass: 15 """类的文档字符串""" 16 17 # 类变量定义 18 class_var = 20 19 20 def __init__(self, param1, param2): 21 # 实例变量定义 22 self.instance_var1 = param1 23 self.instance_var2 = param2 24 25 # 方法定义 26 def method1(self): 27 """方法的文档字符串""" 28 # 方法内部代码 29 30 def method2(self): 31 # 方法内部代码 32 33 # 函数定义 34 def my_function(arg1, arg2): 35 """函数的文档字符串""" 36 # 函数内部代码
上述示例展示了一个典型的Python源文件的结构,包括以下部分:
1. 文件编码声明(或shebang):# -*- coding: utf-8 -*- 表示文件使用UTF-8编码。
2. 模块文档字符串:用三重双引号或三重单引号括起来的注释,用于描述整个模块的功能和用法。
3. 导入语句:用于引入其他模块或模块中的函数、类等。
4. 全局变量定义:在模块级别定义的变量,可以在整个模块内部访问。
5. 类定义:包括类名、类的文档字符串、类变量和方法定义。
6. 方法定义:类中的函数定义,包括方法名、参数列表和方法体。
7. 函数定义:在类之外定义的函数,包括函数名、参数列表和函数体。
需要注意的是,上述结构仅是一种常见的组织方式,并非强制要求。在实际开发中,根据项目的规模和需求,可能会有不同的文件结构和组织方式。最重要的是保持代码的可读性和可维护性,选择适合团队和项目的结构,并遵循一致的编码风格和最佳实践。
Shebang
Shebang继承自UNIX,也有shabang、shbang的称呼,现中文称为“释伴”。在linux环境中,可用which命令(eg“which python3”命令)查找python3命令的路径,使用该路径的绝对路径。在python文件首行输入:
#! /usr/bin/python3
chmod +x myfile.py # 给myfile.py 添加执行权限
./myfile.py # 执行该脚本
使用shebang还需要了解如下知识:
- 如果脚本文件中没有#!行,那么执行时会默认采用当前Shell去解释这个脚本(即:$SHELL环境变量)。
- 如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,就会把文件名及其参数一起作为参数传给那个解释程序去执行。
- 如果#!指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission denied”。
- 如果#!指定的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。
- 如果#!指定的解释程序不存在,那么会报错“bad interpreter: No such file or directory”。注意:#!之后的解释程序,需要写其绝对路径,并且不会自动到$PATH中寻找解释器的。
- 使用类似于”python3 myfile.py”这样的命令来执行程序,那么,#!这一行将会被忽略掉,解释器当然是用命令行中指定的解释器。
- 脚本文件要有可执行权限。