当前位置: 首页 > 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语句导入包中的模块。

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

相关文章:

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

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

Kali Linux

起源与背景 Kali Linux是一个基于Debian的开源Linux发行版,专门为信息安全工作者和渗透测试员设计。它是由Offensive Security Ltd.开发和维护的,作为BackTrack的继承者而诞生。BackTrack是一个流行的安全测试发行版,但为了提供更好的支持和…...

DiffusionDet: Diffusion Model for Object Detection—用于对象检测的扩散模型论文解析

DiffusionDet: Diffusion Model for Object Detection—用于对象检测的扩散模型论文解析 这是一篇发表在CVPR 2023的一篇论文,因为自己本身的研究方向是目标跟踪,之前看了一点使用扩散模型进行多跟踪的论文,里面提到了DiffusionDet因此学习一…...

深度学习基础知识-编解码结构理论超详细讲解

编解码结构(Encoder-Decoder)是一种应用广泛且高效的神经网络架构,最早用于序列到序列(Seq2Seq)任务,如机器翻译、图像生成、文本生成等。随着深度学习的发展,编解码结构不断演变出多种模型变体…...

探讨Java深搜算法的学习笔记

大家好,我是 V 哥。深度优先搜索(DFS)是一种图遍历算法,它优先深入到某条路径的尽头,再回溯到前一个节点继续探索其他路径,直到找到目标或遍历完整个图。DFS的应用场景广泛,可以用于路径搜索、连…...

408——操作系统(持续更新)

文章目录 一、操作系统的概念及特征1.1 计算机系统的概念1.2 操作系统的基本特征 二、操作系统的功能和接口2.1 操作系统作为计算机资源的管理者2.2 操作系统作为用户和计算机硬件系统之间的接口2.3 操作系统实现对计算机资源的扩充 三、操作系统的发展和分类四、操作系统的运行…...

架构师之路-学渣到学霸历程-37

Nginx的热部署实验 本次分享的就是nginx的升级以及降级,实验中其实很多操作都需要理解,实际操作不难,但是需要全面理解这个动作,敲这个命令是用来干什么的?借着这个笔记可以试一下;go~! 1、ng…...

CSRF与SSRF

csrf(跨站请求伪造)的原理: csrf全称是跨站请求伪造(cross-site request forgery),也被称为one-click attack 或者 session riding scrf攻击利用网站对于用户网页浏览器的信任,劫持用户当前已登录的web应用程序,去执行分用户本意的操作。 利…...

RabbitMQ 存储机制

一、消息存储机制 不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。持久化的消息在到达队列时就被写入到磁盘,非持久化的消息一般只保存在内存中,在内存吃紧的时候会被换入到磁盘中,以节省内存空间。这两种类型的消息的落盘处理都…...

【Java SE】类型转换

类型转换是将一个值从一种类型转换为另一种类型的过程。该过程如果从低精度数据类型转为高精度数据类型,则不会发生溢出并且总能成功,如果从高精度数据类型转为低精度数据类型,则会有信息丢失且可能失败。类型转换又可分为隐式转换和显式转换…...

JAVA:常见 JSON 库的技术详解

1、简述 在现代应用开发中,JSON(JavaScript Object Notation)已成为数据交换的标准格式。Java 提供了多种方式将对象转换为 JSON 或从 JSON 转换为对象,常见的库包括 Jackson、Gson 和 org.json。本文将介绍几种常用的 JSON 处理…...

Redis缓存击穿、雪崩、穿透解决方案

Redis 缓存击穿、雪崩、穿透解决方案 1、首先看看逻辑方面是否还有优化空间,正常流程查询redis中获取不到数据,则去数据库获取,但数据库查询并返回时,调用异步方法,将该数据存储进redis中,并设置一个较短的…...

C++ 优先算法——盛最多水的容器(双指针)

目录 题目:盛最多水的容器 1. 题目解析 2. 算法原理 3. 代码实现 题目:盛最多水的容器 1. 题目解析 题目截图: 如图所示: 水的高度一定是由较低的那条线的高度决定的:例1图中,是由7决定的,然后求出…...

blender 小车建模 建模 学习笔记

一、学习blender视频教程链接 案例4:狂奔的小车_建模_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?p14&spm_id_from333.788.videopod.episodes&vd_sourced0ea58f1127eed138a4ba5421c577eb1 二、开始建模 (1)创…...

导出列表数据到Excel并下载

Java导出查询到的数据列表为Excel并下载 1.背景 工作中经常有需求&#xff0c;需要把列表的数据导出为Excel并下载。EasyExcel工具可以很好的实现这一需求。 2.实现流程 1.引入EasyExcel依赖包 <dependency><groupId>com.alibaba</groupId><artifactId…...

基于NVIDIA NIM平台实现盲人过马路的demo(一)

前言:利用NVIDIA NIM平台提供的大模型进行编辑,通过llama-3.2-90b-vision-instruct模型进行初步的图片检测 step1: 部署大模型到本地,引用所需要的库 import os import requests import base64 import cv2 import time from datetime import datetimestep2: 观看官方使用文…...

美格智能5G车规级通信模组:以连接+算力驱动智能化进阶

2023年3月&#xff0c;基于高通公司第二代骁龙汽车5G调制解调器及射频系统平台SA522M/SA525M&#xff0c;美格智能在德国纽伦堡嵌入式系统展上正式发布全新一代5G车规级C-V2X通信模组MA922系列&#xff0c;迅速引起行业和市场关注。随着5G高速网联逐步成为智能汽车标配&#xf…...

[MRCTF2020]PYWebsite1

如果输入的密钥是对的那么我们就直接跳转到flag.php页面 那么我们直接访问&#x1f60e;&#xff0c;他不带我们去我们自己去. 那就用XFF呗. 知识点&#xff1a; 定义&#xff1a;X-Forwarded-For是一个HTTP请求头字段&#xff0c;用于识别通过HTTP代理或负载均衡方式连接到W…...

无源元器件-磁珠选型参数总结

🏡《总目录》 目录 1,概述2,磁珠选型参数2.1,电学参数2.1.3,阻抗(Impedance)2.1.2,额定电流(Rated Current)2.1.3,直流电阻(DC Resistance)2.2,机械性能参数2.2.1,外观和尺寸(Appearance and Dimensions)2.2.2,粘接强度( Bonding Strength)2.2.3,弯曲强度…...

宝顶白芽,慢生活的味觉盛宴

在快节奏的生活中&#xff0c;人们愈发向往那种悠然自得、返璞归真的生活方式。白茶&#xff0c;以其独特的韵味和清雅的风格&#xff0c;成为了现代人追求心灵宁静与生活品质的象征。而在众多白茶之中&#xff0c;竹叶青茶业出品的宝顶白芽以其甘甜醇爽的特质&#xff0c;成为…...

Qwen3-ASR-1.7B语音识别实战:科研访谈录音转文本+主题自动聚类

Qwen3-ASR-1.7B语音识别实战&#xff1a;科研访谈录音转文本主题自动聚类 想象一下这个场景&#xff1a;你刚刚结束了一场长达两小时的深度科研访谈&#xff0c;录音文件静静地躺在你的电脑里。接下来&#xff0c;你需要逐字逐句地听录音、做笔记、整理成文字稿&#xff0c;然…...

Flask-AppBuilder表单验证终极指南:构建企业级安全应用的10个核心技巧

Flask-AppBuilder表单验证终极指南&#xff1a;构建企业级安全应用的10个核心技巧 【免费下载链接】Flask-AppBuilder Simple and rapid application development framework, built on top of Flask. includes detailed security, auto CRUD generation for your models, googl…...

Windows下OpenClaw安装详解:GLM-4.7-Flash模型联调全流程

Windows下OpenClaw安装详解&#xff1a;GLM-4.7-Flash模型联调全流程 1. 为什么选择OpenClawGLM-4.7-Flash组合 去年我在处理个人知识管理时&#xff0c;发现每天要重复执行大量机械操作&#xff1a;整理网页摘录、归类PDF文档、生成日报摘要。尝试过各种自动化工具后&#x…...

从零构建企业级Text2Sql应用:Vanna私有化部署与Dify工作流集成

1. 企业级Text2Sql应用的核心价值 想象一下&#xff0c;财务部门的同事对着Excel表格发愁&#xff1a;"能不能帮我找出上季度华东区销售额超过50万的所有客户&#xff1f;"传统做法需要找IT部门提需求&#xff0c;等开发人员写SQL查询&#xff0c;流程可能长达数三天…...

CATIA数控加工仿真:铣平面粗加工的关键步骤与优化技巧

1. CATIA数控加工仿真入门&#xff1a;从零开始掌握铣平面粗加工 第一次接触CATIA数控加工仿真时&#xff0c;我和大多数新手一样被满屏的参数搞得头晕眼花。直到在车间跟老师傅学了三个月&#xff0c;才发现铣平面粗加工这个基础操作里藏着这么多门道。简单来说&#xff0c;这…...

2023最新免费天气预报API接口推荐与使用指南

1. 2023年最值得尝试的免费天气预报API 天气预报API已经成为开发者工具箱里的常备工具&#xff0c;无论是做旅行App、外卖配送系统还是智能家居设备&#xff0c;实时天气数据都扮演着关键角色。我最近在开发一个户外运动提醒功能时&#xff0c;把市面上主流的免费天气接口都试了…...

告别Swagger原生UI!用Knife4j给你的SpringBoot API文档做个‘美容’

从Swagger到Knife4j&#xff1a;打造专业级API文档的终极指南 如果你已经厌倦了Swagger原生UI那千篇一律的界面和笨拙的操作体验&#xff0c;那么是时候给你的API文档来一次全面升级了。在当今这个注重用户体验的时代&#xff0c;一个美观、易用且功能强大的API文档界面&#x…...

设计师不用写代码了?实测TRAE SOLO Builder如何将Figma稿秒变可交互网页

设计师如何用TRAE SOLO Builder实现零代码网页开发 在数字产品设计领域&#xff0c;设计师与开发者之间的协作断层长期存在。设计精美的Figma稿转化为实际网页时&#xff0c;往往面临还原度不足、交互细节丢失等问题。TRAE SOLO Builder的出现&#xff0c;正在重新定义设计到开…...

别再为‘file must be a file‘报错头疼了!手把手教你用Apifox搞定Dify文件上传接口

深度解析Dify文件上传接口&#xff1a;从报错排查到Apifox高效调试实战 当你正在为Dify AI应用集成文件上传功能时&#xff0c;是否曾在Apifox中反复遭遇file must be a file的报错而束手无策&#xff1f;这种看似简单的接口调试背后&#xff0c;隐藏着文件传输机制、参数组合…...

Comsol光子晶体:谷霍尔效应、单胞与超胞能带计算及谷单向传输

Comsol光子晶体谷霍尔效应。 单胞&#xff0c;超胞能带计算。 谷单向传输等。光子晶体玩拓扑这件事最近越来越上头。今天咱们撸起袖子直接干一个谷霍尔效应仿真&#xff0c;手把手教你在COMSOL里搞出单向传输这种神奇现象。先说重点&#xff1a;结构旋转6度就能打开带隙&#x…...