這篇文章給大家介紹Python 中import與from import有什么區(qū)別,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
一、import語(yǔ)句
在開(kāi)始使用一個(gè)模塊中的函數(shù)之前,必須用import語(yǔ)句導(dǎo)入該模塊。
語(yǔ)法:
import module1[, module2[,... moduleN]]
實(shí)例:
1、使用random模塊ranint() 函數(shù):
# printRandom.py import random for i in range(5): print(random.randint(1, 10)) # result:
說(shuō)明:因randint()函數(shù)屬于random模塊,必須在函數(shù)名稱之前先加上random,告訴Python在random模塊中尋找這個(gè)函數(shù)。
2、導(dǎo)入多個(gè)模塊:
import math, sys, random, os
二、from import語(yǔ)句
這是導(dǎo)入模塊的另一種形式,使用這種形式的 import 語(yǔ)句, 調(diào)用 模塊中的函數(shù)時(shí)不需要 moduleName. 前綴 。但是,使用完整的名稱會(huì)讓代碼更可讀,所以最好是使用普通形式的 import 語(yǔ)句 。
語(yǔ)法:
from moduleName import name1[, name2[, ... nameN]]|*
實(shí)例:
導(dǎo)入random模塊下的所有函數(shù):
from random import * for i in range(5): print(randint(1, 10)) # 這里就不需要random.前綴了
導(dǎo)入random模塊下的randint, random函數(shù):
from random import randint, random
下面看下python import 和from import 區(qū)別
上網(wǎng)查了一下,貌似是一個(gè)簡(jiǎn)單問(wèn)題,網(wǎng)上都是這么說(shuō)的,我之前也是這么理解的:
假設(shè)有一個(gè)包名字叫 numpy, 里面有一個(gè)函數(shù) zeros
1、 from numpy import zeros
那么你可以直接調(diào)用 zeros()函數(shù)
2、import numpy.zeros
那么你只能使用全名 numpy.zeros
但今天遇到了問(wèn)題了。
from sklearn import datasets a=datasets.load_digits() print(a)
這個(gè)代碼沒(méi)問(wèn)題
但是下面這個(gè)代碼居然提示錯(cuò)誤
import sklearn a=sklearn.datasets.load_digits() print(a)
提示錯(cuò)誤是:AttributeError: module 'sklearn' has no attribute 'datasets'
什么鬼,看不懂,不是說(shuō)import sklearn 后應(yīng)該可以通過(guò)點(diǎn).來(lái)訪問(wèn)sklearn里的所有內(nèi)容嗎,就像numpy中那樣。初學(xué)者,不懂,求大神解釋下,不勝感激??!
這樣也報(bào)錯(cuò)
import sklearn.datasets a=datasets.load_digits() print(a) NameError: name 'datasets' is not defined
關(guān)于Python 中import與from import有什么區(qū)別就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。