关于导包问题

1.导包其实就是在导包里的__init__文件
以执行文件的sys.path为准(内部的导入是以顶级目录作为开头的,往后一层层找)
1. 什么是包
包就是一个包含有__init__.py文件的文件夹
包本质就是一种模块,即包是用包导入使用的,包内部包含的文件也都是用来被导入使用

2 为何要用包
包是文件夹,那文件夹就是用来组织文件的
# 注意:
# 在python2中,包下必须有一个__init__.py文件,而python3中即便是没有也不会报错

# 首次导入包,发送三件事,
# 1. 以包下的__init_.py文件为基准来产生一个名称空间
# 2. 执行包下的__init_.py文件的代码,将执行过程中产生的名字都丢到名称空间中
# 3. 在当前执行文件中拿到一个名字p1,该p1就是指向__init__.py名称空间的

# 总结包的使用无非注意三点:
# 1. 但凡是在导入语句中带点的,点的左边都必须是一个包
# 2. 导入包就是在导包下的__init__.py文件
# 3. 如果使用绝对导入,绝对导入的起始位置都是以包的顶级目录为起始点
# 4. 但是包内部模块的导入通常应该使用相对导入,用.代表当前所在的文件(而非执行文件),..代表上一级
# 强调:
# 1. 相对导入只能包内部的模块之间互相导入使用
# 2. ..上一级不能超出顶级包
import sys
sys.path.append(r‘D:\脱产三期视频\day18\01 包的使用\dir1\dir2‘)

run.py为执行文件,m1,m2为p1里的文件。m3为p2里的文件

在pgk里的__init__文件使用直接和间接方法导入m1_fn和m2_fn方法

在同层目录下,使用绝对导入和相对导入m1_fn方法

原文地址:https://www.cnblogs.com/haiguixiansheng/p/9457534.html

时间: 2024-10-11 17:32:03

关于导包问题的相关文章

Eclipse4.7使用基础 使用快捷键导包时,遇到不同包下有同名类时,出现选择框

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) 初始状态:已经使用快键键进行导包,由于出现不包下存在同名类,出现选择框 以供选择 如果第一个是正确的话,选择第一个 效果 如果第二个是正确的话,选择第二个 效果 利用IDE的智能提示辅助修改 Java优秀,值得学习.Eclipse是一款免费.强大的IDE,值得学习使用.

导包语句

/* 有了包之后类与类之间的访问: 问题: 有了包之后类与类之间的访问每次都必须 要写上包名!烦!!!! 解决方案: sum提供导包语句让我们解决该问题. 导包语句作用:简化书写. (误区: 把一个类导入到内存中) 导包语句的格式: import 包名.类名; (导入xxx包中某个类) 导包语句要注意的细节: 1. 一个java文件中可以出现多句导包语句. 2. "*"是 导包语句的通配符.可以匹配任何 的类名. 3. import aa.*; 是不会作用于aa包下面的子包的. 推荐使

Eclipse Oxygen 解决 自动导包的问题

换成了 Eclipse 的Oxygen 版本 , 发现之前好用的自动导包功能不能用了 (Ctrl+Shift+O) 再 网上看资料  上面说 将  In Windows 替换为Editing Java Source 1)在Eclipse 的右上角 的quick access中输入keys 2) 然后在keys 的view中输入 Organize Imports  将 In Window 替换为 Editing Java Source

myeclipse_JUnit导包问题

第一种方式: MyEclipse创建JUnit单元测试时,在需要测试的代码段前键入"@Test"时,按ctrl和1一般会自动提示JUnit需要导包,但有时会无法提示这个建议,如图所示.该经验教你如何解决JUnit导包问题.  第二种方式: 解决JUnit导包问题.右键单击项目名,选择buildpath->add library,弹出配置add library对话框   选择junit,next下一步   这时系统会自动找到JUnit4.jar包,点击finish   此时项目还是

Idea设置自动导包

默认 IntelliJ IDEA 是没有开启自动 import 包的功能. 勾选标注 1 选项,IntelliJ IDEA 将在我们书写代码的时候自动帮我们优化导入的包,比如自动去掉一些没有用到的包. 勾选标注 2 选项,IntelliJ IDEA 将在我们书写代码的时候自动帮我们导入需要用到的包.但是对于那些同名的包,还是需要手动 Alt + Enter 进行导入的,IntelliJ IDEA 目前还无法智###JAVA导包超过指定数量

Android Studio没有导包快捷键怎么办

Android Studio没有导包快捷键,那怎么办呢? 在使用Eclipse开发Android应用时,开发者往往会使用Shift+Ctrl+O快捷键来快速导入所有的包,和移除未使用的包.但这个快捷键在Android Studio中只能用来移除未使用的包,那有没有什么替代方法呢? 有!依次打开:File -> Settings -> Editor -> Auto Import 将" Insert imports on paste" 改为“ All”,然后勾选“Add

JavaSE8基础 简化不通包之间类的访问 导包 import

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码一: package cnblog.jizuiku.Tool; //其他的包中的类要想 访问到这个类,那么就需要为Tools加修饰符 我加的是最大权限 public public class Tools { public static void sayHello() { System.out.println("h

Android studio之更改快捷键及自动导包

刚刚转入Android Studio,对AS中的一些操作还不太熟悉,所以记录一下... 更改AS中的代码提示快捷键,AS做的也挺智能的,在Keymap中可以选择使用eclipse的快捷键设置,但是虽然设置了,对有些快捷键还是不能使用,那么就需要我们手动去修改了. 在代码提示AS默认的快捷键是Ctrl+Alt+Space,反正我是用不惯,还是改为eclipse中的Alt+/吧,修改时必须先copy一份快捷键设置副本才能修改: 在修改时候,我们会发现AS提示有快捷键冲突,意思就是这个Alt+/已经被

003.Android Studio设置自动导包及自动导包快捷键

方式一:Android studio只有导单个包的快捷键:Alt+Enter. 方式二:设置自动导所有的包 点击File→Setting,Setting→Editor→General→Auto Import,勾选Add unambiguous imports on the fly即可自动导包,点击apply→OK  

学生管理系统导包

本系统导包使用中央仓库maven导包.后台使用的是java SSM框架,与前台交互使用ajax传递json数据,实现动静分离. maven导包具体pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apa