Python import与from import使用及区别介绍

下面介绍下Python import与from import使用,具体内容如下所示:

Python程序可以调用一组基本的函数(即内建函数),比如print()、input()和len()等函数。Python本身也内置一组模块(即标准库)。每个模块都是一个Python程序,且包含了一组相关的函数,可以嵌入到你的程序之中,比如,math模块包含了数学运算相关的函数,random模块包含随机数相关的函数,等等。

一、import语句

在开始使用一个模块中的函数之前,必须用import语句导入该模块。

语法:

import module1[, module2[,... moduleN]]

实例:

1、使用random模块ranint() 函数:

# printRandom.py
import random
for i in range(5):
  print(random.randint(1, 10))
# result:

说明:因randint()函数属于random模块,必须在函数名称之前先加上random,告诉Python在random模块中寻找这个函数。

2、导入多个模块:

import math, sys, random, os

二、from import语句

这是导入模块的另一种形式,使用这种形式的 import 语句, 调用 模块中的函数时不需要  moduleName. 前缀 。但是,使用完整的名称会让代码更可读,所以最好是使用普通形式的 import 语句 。

语法:

from moduleName import name1[, name2[, ... nameN]]|*

实例:

导入random模块下的所有函数:

from random import *
for i in range(5):
  print(randint(1, 10)) # 这里就不需要random.前缀了

导入random模块下的randint, random函数:

from random import randint, random

下面看下python import 和from import 区别

上网查了一下,貌似是一个简单问题,网上都是这么说的,我之前也是这么理解的:

假设有一个包名字叫 numpy, 里面有一个函数 zeros

1、 from numpy import zeros

那么你可以直接调用 zeros()函数

2、import numpy.zeros

那么你只能使用全名 numpy.zeros

但今天遇到了问题了。

from sklearn import datasets
a=datasets.load_digits()
print(a)

这个代码没问题

但是下面这个代码居然提示错误

import sklearn
a=sklearn.datasets.load_digits()
print(a)

提示错误是:AttributeError: module 'sklearn' has no attribute 'datasets'

什么鬼,看不懂,不是说import sklearn 后应该可以通过点.来访问sklearn里的所有内容吗,就像numpy中那样。初学者,不懂,求大神解释下,不胜感激!!

这样也报错

import sklearn.datasets
a=datasets.load_digits()
print(a)
NameError: name 'datasets' is not defined

总结

以上所述是小编给大家介绍的Python import与from import使用及区别介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • python中import与from方法总结(推荐)

    一.模块&包简介 模块:所谓模块就是一个.py文件,用来存放变量,方法的文件,便于在其他python文件中导入(通过import或from). 包(package): 包是更大的组织单位,用来组织区别管理多个模块文件. import 用来导入模块 from 用于从模块中导入方法(全部或部分),也可用as 重命名导入的方法 二.import&from使用方法 1. import使用方法: *import 模块 [as  别名模块] *import 包.[N包].模块; 注:import 导入

  • python中from module import * 的一个坑

    但还有另外一个问题 - 你以为你修改了某个变量,其实,被from module import *后的那个并没有被更新,非常危险,因为程序有可能还可以正常运行, 只不过结果错了,到了production才被发现就比较惨了. 举个例子: 你定义了一些变量在base模块中: # reference data type class Demo: def __init__(self, name): self.name = name demo = Demo('Demo') # primitive type f

  • Python import用法以及与from...import的区别

    在python用import或者from...import来导入相应的模块.模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了.这类似于C语言中的include头文件,Python中我们用import导入我们需要的模块. eg: 复制代码 代码如下: import sys print('================Python import mode==========================

  • 详解Python中的from..import绝对导入语句

    相对或者绝对import 更多的复杂部分已经从python2.5以来实现:导入一个模块可以指定使用绝对或者包相对的导入.这个计划将移动到使绝对的导入成为默认的细节在其他版本的python中. 我们假设你有一个包目录,像下面这样: pkg/ pkg/__init__.py pkg/main.py pkg/string.py 上面定义了一个包称为 pkg 包含 pkg.main 和pkg.string 两个子模块.考虑在'main.py'中的代码,什么事情会发生如果我们执行语句 import str

  • 深入理解Python中的 __new__ 和 __init__及区别介绍

    本文的目的是讨论Python中 __new__ 和 __ini___ 的用法. __new__ 和 __init__ 的区别主要表现在:1. 它自身的区别:2. 及在Python中新式类和老式类的定义. 理解 __new__ 和 __init__ 的区别 这两个方法的主要区别在于:__new__ 负责对象的创建而 __init__ 负责对象的初始化.在对象的实例化过程中,这两个方法会有些细微的差别,表现于:如何工作,何时定义. Python中两种类的定义方式 Python 2.x 中类的定义分为

  • python 集合set中 add与update区别介绍

    集合set是一个无序不重复元素的集 set(['hello','hello','hi']) # {'hello', 'hi'} set('hello hello hi') # {' ', 'e', 'h', 'i', 'l', 'o'} set.add() 与set.update()的区别 myset1 = set() myset1.add('hello') #{'hello'} myset1.update('world') #{'d', 'hello', 'l', 'o', 'r', 'w'}

  • Python import与from import使用及区别介绍

    下面介绍下Python import与from import使用,具体内容如下所示: Python程序可以调用一组基本的函数(即内建函数),比如print().input()和len()等函数.Python本身也内置一组模块(即标准库).每个模块都是一个Python程序,且包含了一组相关的函数,可以嵌入到你的程序之中,比如,math模块包含了数学运算相关的函数,random模块包含随机数相关的函数,等等. 一.import语句 在开始使用一个模块中的函数之前,必须用import语句导入该模块.

  • Python import与from import使用和区别解读

    系统自带模块(库) ```cpp import re target = 'abc1234xyz' re.search('(\d+)', target) 但有时候,你可能会看到某些人这样写代码: ```python from re import search target = 'abc1234xyz' search('(\d+)', target) 那么这两种导入方式有什么区别呢? 我们分别使用type函数来看看他们的类型: >>> import re >>> type(

  • python中的import、from import及import as的区别解析

    首先介绍一下import和include的区别或者说import相对include的好处: import导入的内容只会被包含一次,在引入之前会检测是否已经存在该模块,不存在才会被引入,而include是不会做判断的.使用import在递归包含的时候不会出错,不会引起交叉编译的问题.此外,使用include引入头文件对其引入顺序也有一定的要求. import import是python提供的用于导入模块的机制,导入是的整个模块的内容.模块可以是py.pyc.pyd,可以是系统自带的,也可以是自定义

  • iOS开发中#import、#include和@class的区别解析

    1. 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 2. #import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题.<标记> 所以,#import比起#include的好处就是不会引起交叉编译. #import && #class: 1. import会包含这个类的所有信息,包括实体变量和方法(.h文件中),而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,后面会再告

  • python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 import 模块名 form 模块名 import * from 模块名 import 模块名 as 新名称 3. 导入模块本质 import 模块名 ===> 将模块中所有的数据赋值给模块名,调用时需要模块名.方法名() from 模块名 import 方法名 ==>将该方法单独放到当前文件运行一遍

  • iOS开发中class和#import的区别介绍

    在iOS开发过程中,我们在一些源码中经常会看到导包的时候有的用#import进行导包,但是有的的时候也会看到用@class进行导包,那么这两种方式有什么区别呢? 一 @class和#import的主要区别 首先说一下最主要的区别: •使用#import引入一个类的头文件,编译时会将该类的头文件中的所有信息都引入,包含属性和方法: •使用@class仅仅是告诉编译器这是一个类,并不会因入该类的其他信息,而我们所关心的也仅此一点,而不需要知道该类的内部有哪些属性和方法,因此使用@class可以提升编

  • 简单谈谈c/c++中#import、#include和@class的区别

    1. 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 2. #import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题.<标记> 所以,#import比起#include的好处就是不会引起交叉编译. #import && #class: 1. import会包含这个类的所有信息,包括实体变量和方法(.h文件中),而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,后面会再告

  • Vue export import 导入导出的多种方式与区别介绍

    在使用vue导出时会有一个default关键字,下面举例说明下在导出时使用export和export default的对应的imort写法的区别 一.部分导出和部分导入 部分导出和部分导入的优势,当资源比较大时建使用部分导出,这样一来使用者可以使用部分导入来减少资源体积,比如element-ui官方的就推荐使用部分导入来减少项目体积,因为element-ui是一个十分庞大的框架,如果我们只用到其中的一部分组件, 那么只将用到的组件导入就可以了. 1.1部分导出的写法 export functio

随机推荐