python导入同一文件夹下的类_python自定义模块

模块的引入方式:

1.import 模块名:导入模块中的所有内容(引入多个用逗号分隔)

import random,time

2.from 模块名 import 函数名1,函数名2...

导入部分模块

(导入部分的话直接使用)

3.from 模块名 import *

导入所有,有约束

需要在__init__.py文件中添加属性:

__all__ =[ "函数1","函数2"...... ]

引入自定义模块

**第一种**,直接 import

这里有个大前提,就是你的py执行文件和模块同属于同个目录(父级目录)

a44dbdf22487f7d1c3ddfaec89526aff.png

2b811ca3aa8cd11dc95ad4eef853323b.png

**第二种**,通过sys模块导入自定义模块的path

如果执行文件和模块不在同一目录,这时候直接import是找不到自定义模块的

sys模块是python内置的,因此我们导入自定义模块的步骤如下:

先导入sys模块

然后通过sys.path.append(path) 函数来导入自定义模块所在的目录

导入自定义模块。

dba58f66365f4ac05be1f89b257abd90.png

4a454df4df578944236b0a4e25163b3b.png

注意:相同级别的导入,如果用sys拼接路径的话,只需要到目录,而不是py文件,然后直接import导入即可!!

46415245a0094bb0902ede501c001a79.png

**第三种**

venv文件下--》lib--》site-packages--》新建文件夹--》存入模块

导入方式:

import 文件夹.模块

文件夹.模块.属性(方法)

8cc7207a875934d9e481b7d20919951c.png

fe8dfcbd2fd147ab3a4ac1137a9e9038.png

**第四种**

动态导入:

import sys

sys.path.insert(0,r"C:UsersAdministratorDesktop")

print(sys.path)

__import__("hi.py")#导入的是包名,然后再通过from 包名 import 模块名

65f0a9cd85f28a0b87eb340555cc6b36.png

48d4ec0b521688837810fcba2fdddd57.png

通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。

包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。

在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。

包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹当作包使用时,文件夹需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块。

a44dbdf22487f7d1c3ddfaec89526aff.png

2289be729b7f4b299cf26275e359e707.png

0272f121d0bfa47c654cd9883a3e058d.png

**__init__.py的主要作用是:**

1. Python中package的标识,不能删除

2. 定义__all__用来模糊导入(from package-name import *)

3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)

**特点:**

python包是:

包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。

通俗一点:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。

包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py 文件,那么这个文件夹就称之为包有效避免模块名称冲突问题,让应用组织结构更加清晰

__init__.py 控制着包的导入行为

__init__.py为空仅仅是把这个包导入,不会导入包中的模块

__all__在__init__.py文件中,定义一个__all__变量,它控制着 from 包名 import *时导入的模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上河南星海科技_揭秘丨赣江新区网红打卡点,为你按下科技快进键!

人类对科学和未来永无止境的求知欲,是人类社会发展的根本动力之一。整合历史长河中积累的科学文明,探索和体验未来的黑科技,在赣江新区,一座国际创新科技馆在全城翘首中揭开了神秘面纱,一举跃升为赣江新区的网红打卡点…

模糊匹配查询_必须掌握的6个查询函数应用技巧,办公必备,收藏备用!

在Excel中,有一类函数被称为查找和引用函数,今天,小编给大家分享6个查询函数(Choose、Lookup、Hlookup、Vlookup、Match、Index)的应用技巧,可以收藏备用哦!一、Choose。功能:根据序…

共阳极管的代码_共阳极数码管-共阳极数码管显示

共阴极数码管高电平驱动,公共端是负极 共阳极数码管低电平驱动,公共端是正极共阳极七段数码管,如果要显示字母L,则abcdefg七段对应的段应该接电平是答案是:A1110001最低027元/天开通百度文库会员,可在文库查…

python环境介绍_Python介绍以及Python环境搭建

Python介绍以及Python环境搭建1.Python 发展历史Python是由Guido van Rossum在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的,据说是在圣诞节花了一个圣诞节的时间用C语言创造出来的,Python用一部他喜欢的英国喜剧《Mo…

oracle非常量不能用于privot_Oracle 行列转换函数pivot、unpivot的使用(二)

一、行转列pivot关键函数pivot,其用法如下 pivot(聚合函数 for 列名 in(类型))select * from table_name pivot(max(column_name) --行转列后的列的值value,聚合函数是必须要有的for column_name in(value_1,value_2,value_3…

python安装poi第三方库_使用Python获取城市POI数据

1.数据接口:本次使用百度地图开放平台中的地点检索API来获取城市POI数据,此次以矩形区域检索为例。2.获取思路:因为百度出于数据保护目的,单次访问服务最多同时返回400条数据,不过官方也给出了解决方案,即通…

oracle 对两列加唯一性束_oracle中创建unique唯一约束(单列和多列) 。

oracle中的unique约束是用来保证表中的某一类,或者表中的某一类组合起来不重复的一种手段。我们在可以在创建表时或者创建好后通过修改表的方式来创建oracle中的unique约束。下面是一些创建unique约束的例子:create table unique_test(id number,fname varchar2(20)…

foc 电流环解耦_永磁同步电机矢量控制的解耦及电流环的设计

闸的情况下,系统的初始加速度均为LTJ,如此看来,不管如何优化设定系统的参数,能够改变的仅仅是加速度的变化模式及其经历过程的时间长短,而其最大加速度数值是无法改变的。实际系统当然不会这么理想,至少传…

vivoy9s怎么设置返回键_vivoy9s怎么设置返回键 可以使用虚拟导航键

vivoy9s是支持全面屏手势的,若用户想要返回操作的话,主要看用户选择的手势导航方式,一般来说可以通过上滑返回到手机桌面,当然了,若用户不习惯手势导航,可以设置虚拟导航键,这样的话手机屏幕下方…

1万并发服务器配置_小程序后端服务器搭建:云服务器配置(1)

起因最近在搞小程序,有一个留言与图片上传并展示的功能,用小程序自带云服务器也可以实现,但如果与别的端进行多端互动就需要一个服务器来做为后端,进行图片与留言的上传,并把留言内容和上传后的图片地址保存到sql数据库…

cgo的效率 golang_golang CGO FAQ TIPS : cgo 从 C 传递 slice 到 go

cgo 从 C 传递 slice 到 go这里一般会用在c的callback中。需要加一个wrapper,比直接调用go函数中间多了一个转换步骤,但方便了许多。执行流程为,c调用发起 -> c wrapper -> go export.go://export a_function_callbackfunc a_function_…

php 图片印章_php工具型代码之印章抠图

能将白底红字的印章抠出来,用的是php,框架是laravel,其他框架请自行调节。扣其他颜色也可以,把里面的那段rgb参数判断改改就行了,最后抠出来的效果就是白底变透明,然后只留下红色的章,放在其他页…

vb mysql_VB连接MYSQL实例

VB连接MYSQL实例电脑需安装数据库mysql server和mysql connector net相关版本软件。在工程的‘项目’-‘添加引用’中添加引用‘mysql.data’实现代码如下:Imports System.IOImports SystemImports System.DataImports System.Windows.FormsImports MySql.Data.MySq…

c web mysql数据库_C连接Mysql数据库代码

//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路径//在工程设置-》链接》库模块中添加 libmysql.lib#include #include #include #include #include "E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h"void main(){MYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;char …

ext 如何判断是否是整数_Excel表格技巧—如何用ISNUMBER判断是否是数值

在EXCEL的单元格中,有些单元格为填写的不是数值,在某些情况下,会影响计算结果,例如,以下的表格中,红框内的单元格一个是输入了一个空格,另一个“—”符号,后面平均值的计算未将该单元…

ensp安装对电脑配置要求高吗_直线导轨有哪些安装方法?为什么直线导轨安装精度要求高?...

要点:1、为什么直线导轨安装精度要求高;2、直线导轨的安装流程;3、直线导轨不同安装方法介绍。点击链接加入群聊【solidworks机械设计学习】:正在跳转​jq.qq.comhttps://www.zhihu.com/video/1197242052088516608

mysql查看版本号_十分钟了解MySQL事务机制

读书百遍其义自现。MySQL数据库在我们平时工作学习中的使用频率是相当之高,彻底掌握MySQL的事务机制对我们平时工作会有非常大的帮助,仔细回忆一下,你是否对MySQL事务相关的知识是否完全掌握?是否感觉有的地方有些模糊&#xff1f…

mysql 字符串类型 分区_MySQL分区类型

博文大纲:1、RANGE分区2、LIST分区3、HASH分区4、key分区5、MySQL分表和分区的区别6、附加:如何实现将分区放在不同的目录下进行存储MySQL分区类型如下:RANFGE分区LIST分区HASH分区key分区上面的四种分区的条件必须是整形,如果不是…

h5获取http请求头_nodejs 中http请求头,响应头

-------------------- 1.request常见的属性 -----------------------var httprequire("http");var serverhttp.createServer(); //创建服务器server.on("request",function(req,res){// request.headers 打印全部请求头信息--对象形式// request.rawHeader…

mysql邮箱认证_邮件服务系列postfix+sasl+mysql实现用户认证功能

1、卸载bind[rootmail ~]# rpm -e bind-utils2、安装bind97-utils bind97-libs bind97[rootmail ~]# yum install bind97 bind97-utils #bind97-libs依赖于utils3、启动dns服务[rootmail ~]# service named start4、编写配置文件和区域数据文件[rootmail ~]# vim /etc/named.…