关于python导包问题(新手向)
包和模块
首先要弄清这两个概念, 在python 中 一个文件夹中包含__init__.py 文件(这个文件是包的初始化文件,在你导入包或包下面的模块的时候,这个文件会最开始运行),就会被python看做一个包, 包中包含模块, 模块就是python的文件, 例如xxx.py。
import
如果单独使用 import导入, 那么 import 可以有这几种格式:
import 包
import 包.模块
import 包.子包.模块
他们导入方式对应的调用方式分别为(假设调用模块下面的函数):
包.模块.函数()
包.模块.函数()
包.子包.模块.函数()
也就是说, 当使用import导入的时候,要使用模块一个函数需要将 import 后面的东西都加上才可以使用。
当然这里的举的例子是函数()其实也可以是模块中的全局变量 或类
使用 import 导入有一条注意:不能直接导入模块下面的东西(函数,类,全局变量), 最多只能到模块
from import
这种导入可以减少你调用模块下函数的代码量
from import 可以有一下几种格式
from 包 import 模块
from 包.模块 import 函数
from 包.子包.模块. import 函数
from 包 import 子包
他们导入方式对应的调用方式分别为(假设调用模块下面的函数):
模块.函数()
函数()
函数()
子包.模块.函数()
调用方式遵循我上面说的 使用import导入时, 调用其模块中函数调用规则, 也就是调用其中函数,要将 import 后面的当做前缀都写一遍xx.xxx.xx.函数(), 而例子中 from 包.模块 import 函数 就可以直接调用函数, 所以 调用的时候是根据 import 内容决定的。
使用from import 导入还有一个规则, 就是 import 只能导入一个东西, 或模块, 或函数,所以 from 包 import 模块.函数这种写法是错误的, 也就是from import 的 import后面不能有.
总结
1. 在导入的时候 无论是from 还是 import , 模块后面都不可以与模块中内容(全局变量,类,函数)进行.连接, 调用的时候可以
2. 调用的时候, 前缀要加上 import 后面的内容
3. from import 这种导入模式中 import 后面只能是一个层级, import 后面不能有 .
关于python导包问题(新手向)的更多相关文章
- python导包学习总结
python初学者,对于导包纠结了不少时间,总结分享,持续前进~ Python导包的两种方法: 1.1 from 包.模块 import 方法名,调用时直接使用方法名() 1.2 from 包. ...
- python导包显示No module named XXX问题
最近用sublime text写python脚本,在导包是一直显示No module named XXX. 问题描述: 首先文件夹的目录结构如下: count.py文件,代码如下: #coding=u ...
- python导包语句执行
今天在做项目中遇到一个问题,在first_page中引用login的登录方法,第一次执行登录可以正常登录,登录成功后,再选择返回主菜单,回到上个页面,再选择登录时报错“login_class isno ...
- python导包问题,这一篇就够了
解决办法: 将项目所在的根目录添加到sys.path中 在入口文件中加入如下代码: import sys import os # 将 项目的根目录添加到sys.path中 BASE_DIR = os. ...
- 记一次Python导包经历
最近由于需要写一个脚本调用另一个文件里面的一个方法,试了很久都导包失败,特此记录一下 问题背景 1)脚本文件为send_reward.py,要调用public_model_func.py里面的一个类方 ...
- python导包
我们将完成特定功能的代码块放在一个.py结尾的文件中,这个文件被称为模块.在这个模块中可能包含变量,函数,类等等内容. 当我们从外部需要用到这个模块时,就需要将这个模块导入到我们当前环境.导入方式有以 ...
- python导包路径的修改
1.sys os 模块 import sys import os 2.查看默认的导包路路径: print(sys.path) 3.路径拼接 os.path.join(url, 'apps')) 4.追 ...
- python导包一不小心就入坑(常用解决办法)
常见导包报错: - ImportError:No module named - SystemError: Parent module '' not loaded, cannot perform rel ...
- 太酷炫了!!我会Python 导包八种方法,你呢?
1. 直接 import 人尽皆知的方法,直接导入即可 >>> import os >>> os.getcwd() '/home/wangbm'复制代码 与此类似的 ...
- python导包踩过的坑之包名和模块名同名
随机推荐
- WinForm完美实现Cefsharp-v49控件C#与JS交互,并且可加载运行flash
https://blog.csdn.net/zhao331863874/article/details/117328415
- Windows 2019通过网页修改域用户密码
对于域用户来说,定期修改密码是必须的.对于没有Exchange的组织,而且经常出差在外的人员,能及时修改密码就变得很重要了. 在Windows 2003的时候有iisadmpwd可以修改.但是这个页面 ...
- Java套接字实现应用程序对数据库的访问
最近在完成软件体系结构上机实验时,遇到一个有点点小难度的选做题,题目信息如下: 利用套接字技术实现应用程序中对数据库的访问.应用程序只是利用套接字连接向服务器发送一个查询的条件,而服务器负责对数据库的 ...
- Minio纠删码快速入门
官方文档地址:http://docs.minio.org.cn/docs/master/minio-erasure-code-quickstart-guide Minio使用纠删码erasure co ...
- Kibana可视化数据(Visualize)
在侧边导航栏点击 Visualize 开始视化您的数据. Visualize 工具能让您通过多种方式浏览您的数据.例如:我们使用饼图这个重要的可视化控件来查看银行账户样本数据中的账户余额.点击屏幕中间 ...
- 1.在 Kubernetes 在快速安装 Harbor
网址:https://www.qikqiak.com/post/harbor-quick-install/ 安装 Harbor Harbor 支持多种安装方式,源码目录下面默认有一个安装脚本(make ...
- Docker方式安装Jenkins并且插件更改国内源
参考网站:https://www.jenkins.io/zh/doc/book/installing/#在docker中下载并运行jenkins 建议使用的Docker映像是jenkinsci/blu ...
- 从dva到vuex的使用方法()
官网文档:https://vuex.vuejs.org/zh/ 辅助理解的博客:https://blog.csdn.net/m0_70477767/article/details/125155540 ...
- 基于python的端口扫描
前言 端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关).端口扫描是计算机解密高手喜欢的一种方式.攻击者可以通过它 ...
- while循环控制
基本语法 例(输出五句hello): int i = 1; //循环变量初始化 while(i<=5){ //循环条件 printf("\n hello!"); //循环语句 ...