首页 > 编程语言 >python源码结构

python源码结构

时间:2023-06-26 23:57:32浏览次数:31  
标签:定义 python py 解释程序 源码 文档 模块 结构 函数

在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”这样的命令来执行程序,那么,#!这一行将会被忽略掉,解释器当然是用命令行中指定的解释器。
  • 脚本文件要有可执行权限。

标签:定义,python,py,解释程序,源码,文档,模块,结构,函数
From: https://www.cnblogs.com/allenxx/p/17507494.html

相关文章

  • Python数据预处理
    1数据的生成与导入这里主要使用的pandasimportpandasaspd#加载excel数据df_excel=pd.read_excel('')df_excel.head()#加载text数据df_text=pd.read_table('')df_text.head()#加载csv数据df_csv=pd.read_csv('')df_csv.head()2读取多个数据并合并importglobg......
  • python发展史及python应用场景
    python发展史 Python的发展可以分为以下几个阶段:Python1.x(1994-2000):这个阶段是Python发展的初期,主要特点是语言简单易学,它可以很好地操作文本和文件,并且具有很好的扩展性,允许在Python中嵌入其他语言的代码。Python2.x(2000-2010):这个阶段是Python发展的中......
  • Python全栈学习 day07 数据类型(三)
    day06数据类型(下)常见的数据类型:int,整数类型(整形)bool,布尔类型str,字符串类型list,列表类型tuple,元组类型dict,字典类型set,集合类型float,浮点类型(浮点型)目标:掌握字典、集合、浮点类型相关知识。课程概要:set集合,一个不允许重复重复&可变类型(元素可哈希)。dict字典,一个......
  • Python全栈学习 day08 基础知识补充与总结
    day08总结和考试课程目标:对第一模块“Python基础”阶段的知识点进行总结和考试,让学员更好的掌握此模块的相关知识。课程概要:代码规范知识补充阶段总结(思维导图)考试题1.代码规范程序员写代码是有规范的,不只是实现功能而已。1.1名称在Python开发过程中会创建文件夹......
  • 结构型模式
    适配器模式适配器模式用于转换一种接口适配另一种接口。比如,现在有个借口是对json字符串进行分析等,现在有一些yaml文件也要分析,这时候我我们就应该给yaml字符串就个适配器,转换成json字符串,然后就行分析。代码实现packagemainimport( "fmt" "github.com/ghodss/yaml")......
  • Python全栈学习 day04 进制和编码
    day04进制和编码课程目标:讲解计算机中一些必备的常识知识,让学员了解一些常见名词背后的含义(重在理解)。课程概要:python代码的运行方式进制计算机中的单位编码1.Python代码运行方式脚本式python3~/PycharmProjects/day03/6.作业题讲解.py交互式python32.进......
  • Python全栈学习 day2 快速上手基础语法知识
    day02快速上手课程目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能。课程概要:初识编码(密码本)编程初体验输出初识数据类型变量注释输入条件语句1.编码(密码本)计算机中所有的数据本质上都是以0和1的组合来存储。在计算机中会将中文内存转换成0101......
  • Python基于SVM和RankGauss的低消费指数构建模型
    全文链接:https://tecdat.cn/?p=32968原文出处:拓端数据部落公众号分析师:WenyiShen校园的温情关怀是智慧校园的一项重要内容。通过大数据与数据挖掘技术对学生日常校园内的消费信息进行快速筛选和比对,建立大数据模型,对校园内需要帮助的同学进行精准识别,为高校温情关怀提供有效的......
  • python有哪些用一行代码就可以完成的任务?
    python有哪些用一行代码就可以完成的任务?━━━━━━━━━━━━━━━━━━━━━━━━━Python语言采用简洁而优美的语法,可以实现非常复杂的操作。下面列举几个Python语言中可以用一行代码实现的任务:统计一个列表或字符串中元素出现次数:a=[1,2,3,1,4,2,1]cou......
  • 结构型模式概述
    结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。......