包和模块

首先要弄清这两个概念, 在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 importimport后面不能有.

总结

1. 在导入的时候 无论是from 还是 import , 模块后面都不可以与模块中内容(全局变量,类,函数)进行.连接, 调用的时候可以
2. 调用的时候, 前缀要加上 import 后面的内容
3. from import 这种导入模式中 import 后面只能是一个层级, import 后面不能有 .

关于python导包问题(新手向)的更多相关文章

  1. python导包学习总结

    python初学者,对于导包纠结了不少时间,总结分享,持续前进~ Python导包的两种方法: 1.1  from 包.模块  import 方法名,调用时直接使用方法名() 1.2  from 包. ...

  2. python导包显示No module named XXX问题

    最近用sublime text写python脚本,在导包是一直显示No module named XXX. 问题描述: 首先文件夹的目录结构如下: count.py文件,代码如下: #coding=u ...

  3. python导包语句执行

    今天在做项目中遇到一个问题,在first_page中引用login的登录方法,第一次执行登录可以正常登录,登录成功后,再选择返回主菜单,回到上个页面,再选择登录时报错“login_class isno ...

  4. python导包问题,这一篇就够了

    解决办法: 将项目所在的根目录添加到sys.path中 在入口文件中加入如下代码: import sys import os # 将 项目的根目录添加到sys.path中 BASE_DIR = os. ...

  5. 记一次Python导包经历

    最近由于需要写一个脚本调用另一个文件里面的一个方法,试了很久都导包失败,特此记录一下 问题背景 1)脚本文件为send_reward.py,要调用public_model_func.py里面的一个类方 ...

  6. python导包

    我们将完成特定功能的代码块放在一个.py结尾的文件中,这个文件被称为模块.在这个模块中可能包含变量,函数,类等等内容. 当我们从外部需要用到这个模块时,就需要将这个模块导入到我们当前环境.导入方式有以 ...

  7. python导包路径的修改

    1.sys os 模块 import sys import os 2.查看默认的导包路路径: print(sys.path) 3.路径拼接 os.path.join(url, 'apps')) 4.追 ...

  8. python导包一不小心就入坑(常用解决办法)

    常见导包报错: - ImportError:No module named - SystemError: Parent module '' not loaded, cannot perform rel ...

  9. 太酷炫了!!我会Python 导包八种方法,你呢?

    1. 直接 import 人尽皆知的方法,直接导入即可 >>> import os >>> os.getcwd() '/home/wangbm'复制代码 与此类似的 ...

  10. python导包踩过的坑之包名和模块名同名

随机推荐

  1. MySQL8更改数据存储目录

  2. MySQL 在 Kubernetes IPVS 模式下引发的 TCP 超时问题

    文章转载自:https://mp.weixin.qq.com/s/XQ2SlCYxvXPY0rRRO-CURA

  3. 自定义mapping与常见参数

    PUT test { "mappings": { "dynamic": true, "properties": { "firstn ...

  4. 使用docker-compose部署SonarQube

    sonarqube 安装 1.系统配置,避免启动问题 # 系统配置,避免启动问题 echo "vm.max_map_count=262144" >> /etc/sysc ...

  5. vue3基础

    什么是CDN? 内容分发网络--通过相互链接的网络系统,利用最靠近用户的服务器,更快更可靠的发送给用户. vue的cdn引入 method中的函数为什么不能用this? this的主要使用是来获取da ...

  6. 【前端必会】走进webpack生命周期,另类的学习方法

    背景 webpack构建过程中的hooks都有什么呢?除了在网上看一些文章,还可以通过更直接的办法,结合官方文档快速让你进入webpack的hook世界 写一个入口文件 //index.js cons ...

  7. Module Federation 模块联邦 在Vue3中使用Vue2搭建的微服务

    前言: 备注:本文基于对webpack Module Federation有一定了解的情况下 一般情况下使用模块联邦都是会使用相同的版本,如Vue2的组件时在Vue2中使用,但我为什么会在Vue3项目 ...

  8. R及R Studio下载安装教程(超详细)

    R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析.绘图.数据挖掘. 如果你是一个计算机程序的初学者并且急切地想了解计算机的通用编程,R 语言不是一个很理想的选择,可以选择 Pytho ...

  9. GCN的原理及其代码实现

    图数据的特征性质 图像数据是一种特殊的图数据,图像数据是标准的2D网格结构图数据.图像数据的CNN卷积神经网络算法不能直接用在图数据上,原因是图数据具有以下特殊性. 节点分布不均匀:图像数据及网格数据 ...

  10. JVM内存结构模型