包和模块

首先要弄清这两个概念, 在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导包问题(新手向)的更多相关文章

  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. WindowsApps目录占用大量空间

    WindowsApps目录占用大量空间今天遇到一个客户端的问题.Windows 10的电脑100G的C盘空间几乎耗尽.但是选取所有文件后总大小只有不到40G.按常规,肯定是有一些没有权限的文件夹的体积 ...

  2. (WebFlux)004、WebFilter踩坑记录

    一.背景 使用SpringWebFlux的WebFilter时,由于不熟悉或一些思考疏忽,容易出现未知的异常.记录一下排查与解决方案,给大家分享一下. 二.问题 2.1 问题描述 在测试接口方法时,出 ...

  3. SQL通用语法和SQL分类

    SQL通用语法 1.SQL 语句可以单行或多行书写,以分号结尾 2.可使用空格和缩进来增强语句的可读性 3.MySQL 数据库的SQL语句不区分大小写,关键字建议使用大写 4.3种注释 单行注释: - ...

  4. PAT (Basic Level) Practice 1028 人口普查 分数 20

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...

  5. C#-4 方法

    一 何为方法 方法是一块具有名称的代码,是类的函数成员. 方法主要分为方法头和方法体. void Method() { 语句1: 语句2: } 二 类型推断和var关键字 var sum = 15; ...

  6. 使用SqlDataReader对象从数据库中检索只读的数据。

    SqlDataReader对象每次从查询结果中读取一行到内存中,对于sql数据库,如果只需要顺序读取,可以优先选择SqlDataReader,其对数据库的读取速度非常快. 调用SqlDataReade ...

  7. acwing349 黑暗城堡 (最短路径生成树)

    求出最短树,用乘法原理统计答案就行了(模拟prim过程). 不知道说什么了,直接上代码: 1 #include<cstring> 2 #include<iostream> 3 ...

  8. AcWing 最短Hamilton距离 (状压DP)

    题目描述 给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径. Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰 ...

  9. Containerd-1.6.5 镜像容器操作

    一.Containerd 镜像操作 1 基本参数 [root@ecs-65685 ~]# ctr c NAME: ctr containers - manage containers USAGE: c ...

  10. Linux 下搭建 Hadoop 环境

    Linux 下搭建 Hadoop 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 Hadoop 环境 CSDN:Linux 下搭建 Hadoop 环境 环境要求 操作系统:CentOS ...