【Python】 跨文件调用Python函数:轻松实现模块化编程

基本原理

在Python中,模块化编程是一种将程序分解成独立、可重用部分的实践。这样不仅可以使代码更加清晰,而且可以提高代码的可维护性和可重用性。当你想要在一个.py文件中调用另一个.py文件中的函数时,你实际上是在导入并使用另一个模块中的函数。

模块和包
  • 模块:一个.py文件就是一个模块,它包含了Python代码和定义。
  • :包含多个模块的目录,可以组织大型程序。
导入模块
  • 使用import语句来导入模块。
  • 可以使用from ... import ...语句来从模块中导入特定的函数或类。

代码示例

假设我们有两个Python文件:math_operations.pycalculator.py

math_operations.py
# 定义一些数学操作函数

def add(x, y):
    """返回两个数的和"""
    return x + y

def subtract(x, y):
    """返回两个数的差"""
    return x - y
calculator.py
# 导入math_operations模块中的add函数
from math_operations import add

# 使用导入的函数
def calculate_sum(a, b):
    """使用add函数计算两个数的和"""
    return add(a, b)

# 导入整个math_operations模块
import math_operations

# 使用模块名调用subtract函数
def calculate_difference(a, b):
    """使用subtract函数计算两个数的差"""
    return math_operations.subtract(a, b)

注意事项

  1. 命名冲突:如果你导入了多个模块,并且它们有相同名称的函数或变量,Python会使用最后一个导入的模块中的函数或变量。
  2. 循环导入:如果两个模块互相导入对方,可能会导致循环导入错误。避免这种情况的一种方法是使用延迟导入(在需要时才导入)。
  3. 相对导入:在包内部,可以使用相对导入来引用其他模块,但这种方式不适用于包外。

结论

跨文件调用函数是Python模块化编程的一个基本特性,它允许我们将代码组织成逻辑单元,提高代码的可读性和可维护性。通过使用importfrom ... import ...语句,我们可以轻松地在不同的.py文件之间共享和使用函数。

通过理解模块和包的概念,以及如何正确地导入和使用它们,你将能够构建更加强大和灵活的Python应用程序。记住,良好的模块化实践是编写高质量Python代码的关键。

![](https://img-blog.csdnimg.cn/direct/08a02446429a4a85bb9963d696b9f5bd.png)
>
> 【痕迹】QQ+微信朋友圈和聊天记录分析工具1.0.4 (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。
>
> (2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。
>
> (3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。
> 
> **下载地址:https://www.alipan.com/s/x6fqXe1jVg1**
>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调用yolov5的.pt文件,你可以按照以下步骤进行操作: 1. 在新建的文件夹下创建一个名为`pdf_yolov5_to_flash.py`的Python文件,并导入所需的库,例如torch。 2. 在`yolov5_model()`函数中,首先判断是否有可用的GPU设备,然后使用`torch.hub.load()`函数加载yolov5模型。你可以选择加载不同的模型,如yolov5s、yolov5m、yolov5l或yolov5x。此外,你还可以加载自定义的模型。将加载的模型移动到设备上,并返回该模型。 3. 在主程序中,调用`yolov5_model()`函数获取yolov5模型。 引用\[1\]中的代码示例展示了如何在Python调用yolov5的.pt文件。你可以根据需要进行修改和调整。 另外,如果你想将.pt文件转换为.onnx文件,可以参考引用\[2\]中的说明。在转换之前,你需要修改数据文件的路径、权重文件的路径以及其他参数,如batch-size和device。转换完成后,你可以直接在`detect.py`中运行.onnx模型,指定权重文件路径和输入源(图片路径或摄像头)以及数据文件的路径。 希望这些信息对你有帮助! #### 引用[.reference_title] - *1* [调用yolov5训好的本地模型pt](https://blog.csdn.net/leiwuhen92/article/details/126888275)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [yolov5的.pt模型转.onnx模型并运行](https://blog.csdn.net/weixin_45235219/article/details/130923135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值