当前位置: 首页 > news >正文

Python-创建并调用自定义文件中的模块/函数

背景:在Python编程中,我们常常需要创建自己的专属文件,以便帮助我们更高效,快捷地完成任务。那么在Python中我们怎么创建并调用自己文件中的模块/函数呢?

在Python中调用自定义文件,通常是指调用自己编写的Python模块或函数。以下是一些常见的调用情况:

1,同一目录下调用:
如果自定义文件与当前Python文件位于同一目录,可以直接使用import语句导入:
import 文件名
或者使用from语句导入特定的函数或变量:
from 文件名 import 函数名
2,不同目录下调用:
如果自定义文件位于不同的目录,需要先将该目录添加到Python的搜索路径中。可以通过设置sys.path变量来实现:
import sys
sys.path.append('路径/to/自定义文件')
之后,就可以使用import语句导入文件了:
import 文件名
3,调用自定义库:
如果自定义文件是一个库,并且已经安装在Python环境中,可以使用import语句直接导入:
import 库名
如果库文件不在标准库路径中,可能需要添加库文件所在路径到sys.path中:
pythonimport sys
sys.path.append('路径/to/自定义库')
import 库名

Pycharm下的调用问题:
在Pycharm中,如果调用同目录下的文件,可能会有波浪线提示,但通常不影响运行。可以通过设置source_path来解决这个问题:
右键点击当前工作的文件夹,选择Mark Directory as > Sources Root,将当前文件夹加入source_path。
在调用自定义文件时,还应注意文件的命名和路径,确保Python解释器能够正确找到并导入所需的文件。同时,如果文件中有__init__.py文件,这通常表示该文件夹是一个Python包,可以使用import语句导入包中的模块。

本篇文章将着重讲述第一个情况(因为Python入门这种情况接触最多)

1:创建一个自定义文件

我们先在pythonProject1(python项目1)下创建了新文件,命名为name_1.py。接着在name_1.py文件中自定义了一个函数odd()(如上所示),odd()将判断用户传递的实参是否为偶数,如果是,则返回值1;否则返回空值。

2,调用自定义文件中的模块/函数

接着上一步的操作,我们再在python项目1下创建一个新文件并将其命名为function_1.py,然后尝试在function_1.py中引用name_1.py中的odd()函数-'from name_1 import odd'。此时我们发现Pycharm并未给出任何强报错提示(红色提示),表明我们成功引用了name_1.py中的odd()函数。

3,尝试运行一下观察其是否与预期相符

我们尝试打印一下odd(2)的结果(按预期结果为1)-'print(odd(2))'。结果不出所料,为1。至此,所有工作均取得成功,实验结束。

4,拓展延伸

我们已经知道一般情况下自定义文件中的函数在调用时同Python中的标准库函数没什么两样,但是其他情况呢?

保持name_1.py中函数不变,我们尝试打印一下odd(1) -’print(odd(1))‘。(按预期为'None')

发现返回值为空 -'None',实验完美符合预期。Ok,我们可以在后面的编程中放心使用自定义文件了。

其余示例:

(再次强调:Pycharm下的调用问题:
在Pycharm中,如果调用同目录下的文件,可能会有波浪线提示,但通常不影响运行。可以通过设置source_path来解决这个问题:
右键点击当前工作的文件夹,选择Mark Directory as > Sources Root,将当前文件夹加入source_path。
在调用自定义文件时,还应注意文件的命名和路径,确保Python解释器能够正确找到并导入所需的文件。同时,如果文件中有__init__.py文件,这通常表示该文件夹是一个Python包,可以使用import语句导入包中的模块。

期待你的交流指教,我是闪云-微星,我们下期再见!


http://www.mrgr.cn/news/64148.html

相关文章:

  • 如何有效提升MySQL大表分页查询效率(本文以一张900万条数据体量的表为例进行详细解读)
  • Chromium 中chrome.fontSettings扩展接口定义c++
  • CSS——唯美窗口
  • Docker | 校园网上docker pull或者docker run失败的一种解决方法
  • 理解 Java 的代码块
  • 服务器宝塔安装哪吒监控
  • 如何绘制带有误差线的堆叠柱状图
  • 【C语言】文件操作
  • 2021 icpc南京(A,M,C,H,J,D)
  • Java和C++有什么区别?JVM不是跨平台的?JVM是用什么语言编写的?
  • 前端性能优化 | 响应式布局、响应式图片最全解析
  • 智能呼叫中心详细介绍
  • 消息队列mq有哪些缺点?
  • 【Python】进程、线程、协程篇 (无偿分享一份全套的 Python 学习资料)
  • 真题与解析 202212三级 青少年软件编程(Python)考级
  • web服务器
  • YOLOv11改进策略【注意力机制篇】| WACV-2024 D-LKA 可变形的大核注意 针对大尺度、不规则的目标图像
  • 分段线性回归
  • 前端用canvas绘图并支持下载
  • yarn install 出现 error Error: certificate has expired
  • AWS RDS Oracle hit ORA-39405
  • 基于SSM的游戏交易网站的设计与实现
  • 一个指针可以被声明为 `volatile`
  • 力扣每日一题2024/11/2 3226. 使两个整数相等的位更改次数
  • 【棋盘覆盖——匈牙利算法】
  • 课程讲解---深搜