Python入门——函数封装

article/2025/10/2 23:38:05

  当工程量比较大时,我们可以采取“函数封装”的方法实现函数的重复使用,避免“重复造轮子”。

步骤

手动创建一个包,只需进行以下 2 步操作:

  1. 新建一个文件夹,文件夹的名称就是新建包的包名;
  2. 在该文件夹中,创建一个 init.py 文件(前后各有 2 个下划线‘_’),该文件中可以不编写任何代码。当然,也可以编写一些python初始化代码,则当有其它程序文件导入包时,会自动执行该文件中的代码。

实例:创建包my_package:(步骤如下)

  1. 在工作区下新建文件夹my_package
    不限制文件夹的存储路径,但直接在工作区下新建比较方便。

  2. 在该文件夹中添加一个init.py文件
    初始化,该文件中可以什么也不写,但是如果写了后续导入包时会自动运行该文件。
    在这里插入图片描述


至此,包的创建完成,之后只需添加包或者模块即可。


实例:添加模块module_1

在my_package文件夹中新建文件module_1.py即可。
在这里插入图片描述

运行结果:
在这里插入图片描述

包的导入

import 包名[.模块名 [as 别名]]
from 包名 import 模块名 [as 别名]
from 包名.模块名 import 成员名 [as 别名]

【注】

  1. 用 [] 括起来的部分,是可选部分,即可以使用,也可以直接忽略。
  2. 注意,导入包的同时,会在包目录下生成一个含有 init.cpython-36.pyc 文件的 pycache 文件夹。
  3. 如果函数名相同,我们又想不改变函数名。可以通过as关键字可以更改模块名和函数名。目的是防止命名相同,产生冲突。
from module import count_letter_number as sum     # 这里的sum是将封装好的函数名count_letter_number在调用时临时更改为sum

【注】 函数如果同名,后面的函数会覆盖前面的函数;模块下的函数名与被导入模块中的函数名相同时,则会执行模块下的函数,不会执行模块中的函数。

不导入执行语句,只导入函数

if __name__ == 'main'
  把它看成一把闭加锁,使用它就相当于一把锁,把执行语句放在它下面可以阻止其它模块去执行这些内容。要想不被模块调用函数中的执行语句,就把函数名放在它下面,保护起来。

def location(x,y,xm,ym,alpha):rotation=np.array([[math.cos(alpha),math.sin(alpha)],[-math.sin(alpha),math.cos(alpha)]])move=np.array([[x],[y]])xy_b=np.matmul(rotation,move)xy=np.array([[xm],[ym]])xy_A=xy_b+xyreturn xy_A
​
# 比如我们只想导入以上这一部分函数,不需要导入以下的main()函数,那么我们就把main()函数执行的返回值放在if里面.
# main()函数只能在本文件名中执行,不会被其他模块调用.def main():axy_location=location(3,5,5,10,pi/8)print(axy_location)if __name__ == '__main__':main()

【注】两个函数不能互相导入,否则会陷入死循环!

参考资料

[1] Python创建包,导入包(入门必读)
[2] python函数 - 14 函数的封装(模块)


http://chatgpt.dhexx.cn/article/WiE0ZJvL.shtml

相关文章

Python学习基础笔记五十八——封装

封装:广义上的面向对象封装。代码的保护。面向对象的思想本身就是一种封装,只让自己的对象能调用自己类中的方法。 狭义的封装概念:面向对象的三大特性之一:让属性和方法都藏起来,不让你看见。 例1: clas…

Python必备封装基本代码~Python函数

大家好,我是辣条 最近不少粉丝通过文末找到辣条让我分享一些代码封装这一块的内容,今天他来了~ 一遍看不懂就收起来慢慢看,我写的还是很详细的,一定是能轻松拿捏住Python函数的,不过还请记得多多支持辣条,…

PMP学习笔记顺口溜

区分几种组织结构 老板项目为系统; 只有职能为职能; 多个部门多部门, 多个项目为项目 职能项目为矩阵,项强为强,项弱为弱; 项目职能一般大 :平衡 网络分散为虚拟

PMP学习笔记 零 启动

PMP 学习笔记 零 启动 我为什么要学习PMP 我是一个程序猿,别人让我做什么,我就去做什么,提出什么需求我就完成,但是渐渐的我不满足成为一个工具人,就开始也开始设计功能,和抛开产品经理独自完成一些需求&…

我的PMP学习考试心得

01看书学习是基础,但更需要深化理解 备考期间,我通读了PMBOK,认真观看了视频教程和小红书,按照班主任的要求循序渐进,慢慢掌握了基本的知识点。因为缺少基础,所以只能通过反复记忆,特别是利用每…

PMP学习群沙龙+抽奖活动

3月考试临近,学员们都在积极备考。 老师们当然也不会闲着。 这不,就给大家带来福利了。 针对我们的PMP学习群的福利活动即将上线。 进群填写信息即可获得抽奖机会一个,邀请进群一人再赠送一个抽奖机会。 百分百中奖 奖品: 超…

PMP 学习记录

1.预算和估算 2.挣值分析 1)三个指标: PV (planned value),计划值; AC(Actual Cost):实际成本, EV:Earned value,挣得的值&#xff1b…

pmp学习资料下载-pmp备考

PMP的全称是Project Management Professional,中文名称叫项目管理专业人士资格认证。 它是由美国项目管理协会(PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。其目的是为了给项目管理人员提供统一的行业标准。 目前PMP已经在…

PMP学习资料干货分享 - 干货满满

干货概览图 部分资料展示图 (1)IT 项目管理表格,五大过程组启动,规划,执行,监控,收尾全覆盖(共142张项目管理表格) (2)10章节的知识要点和做题思路 (简单扼要…

PMP学习总结(3)

PMP学习总结(3) 一、项目运行环境: 1.事业环境因素: (1)由来:项目团队不可控的,会对项目产生影响、限制或指令作用的各种条件 (2)特点:不可控,但需要遵守 &am…

PMP学习材料整理

PMBOK。官方指定用书,考试知识点来自PMBOK。 汪博士解读PMP考试。考试参考书,比PMBOK解析得更清楚,容易理解,贴近考试。 精讲课程中的PPT,课堂学习材料。 单元练习题。精讲之后,单元复习时,用于…

PMP学习计划

偶尔翻到2012年备考PMP定的计划,分享给大家作参考。 总目标:通过PMP 1、需要精度三遍 2、会做所有的练习题,能套用所有的公式 3、名字和典型过程会默写 4、每天至少保证两个小时的学习。 执行力要强,必须完成。 1、今晚完成PMP英…

万字心得,PMP学习考试那些事儿,看这篇文章就够了

声明:文章为原创,首发于知乎,链接:万字长文!PMP考试那些事儿,看这篇文章就够了 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/524966002 以下内容针对2022年PMP考试,即新考纲。 万字长文&…

pmp学习资料_201912期PMP学习内容汇总表

PMP考试,是一个体力活儿,需要奋战4个小时,答200道情景判断的选择题,而且......突破我们对考试的认知...... PMP学习,是一个需要付出时间和脑力的过程。我们需要从700多页书中学习49个过程、76个文件、122项工具技术&am…

怎样学好PMP

想要学好PMP,当然离不开学习官方指定教材《PMBOK指南》咯。 但是《PMBOK指南》的内容太广泛,思维很跳跃。所以我们不光要有《PMBOK指南》还要准备其他的教材,并制定我们自己的学习计划。 1.《PMBOK指南》 因为这是考试核心教材&#xff0c…

PMP学习总结

PMP学习总结 个人参加了QH的线下培训班,报班时间是2020年3月,线下班,有线上课程和线上练习题,中文版PMBOK(第六版)和他们自己的培训教材。费用2300(教学费用)3900(统一的…

如何学习PMP?

★基础要打牢 方法:“基础不牢,地动山摇”,如果基础不牢那么就很难拿高分,因为连最基础的题目分都不一定能拿到。 可以在针对基础知识,把PMBOK看一两遍,再次加深印象,再把平时做章节练习、每日5…

pmp的学习方法和技巧

在学习初期,在对五大过程组49个过程有个初步的理解后,马上背诵并牢记(中英文版)。事实证明,越早记得,对提高后面的学习效率越有帮助。 老师的课深入浅出,经常会用不同行业,国家的一…

【项目管理PMP备考】PMP到底学习什么?

学习PMP的过程其实就是了解这样一种先进的管理思想、理念、方法,也就是学习新文化。 PMP考试就是考核你对PMP管理规则、流程、方法的掌握程度,因此他要考察的内容一定是项目管理的要素,而且也一定是偏向与考核你对这种新文化的理解程度。 我们…

删除单链表中所有值为x的数据元素(C语言版)

算法思路:定义两个指针r与p,其中让p指针始终在r指针的前面,即p r->next 。让两个指针在链表中从头结点开始移动,如果p指针所指向结点的数据域的值与给定的值x相等,就要删除 。因为指针r指向该结点的前驱结点,所以我们可以轻松…