【Python】 -- from module import * 、from module import function 与 import module

import module

导入Python标准库或者第三方库,导入之后可以通过以下语法调用库中的函数。此方法会导入module中的所有函数方法,可能会占用较大的不必要的空间以及load时长增加。

import module  #导入标准库或者第三方库,module为具体库名
module.function()   #调用module库中的function函数

当module名字过于复杂过长时,可以通过import module as x命令简化。x为用户自定义的任何符合Python变量定义的名称均可。如:

import turtle as tl    #在此程序中用简写tl代替turtle
tl.penup()     #提起画笔
......

from module import function

区别于import module命令导入所有module库中包含的函数方法,from module import function只从module库中导入特定的function函数,减少了load时长避免占用不必要的解释空间;当然,此种命令下module库里除function之外未导入的其他函数是没法调用的。因此只调用一两个很少的函数时才使用此命令。

from turtle import penup   #导入的函数名,不需要跟括号和形参
penup()   #导入后直接使用即可,不能像之前一样通过module.function()调用,这样反而会报错
#例如
from turtle import penup
turtle.penup()
此时会有如下报错:
Traceback (most recent call last):
  File "C:\Users\asus\Desktop\py-script", line 2, in <module>
    turtle.penup()
NameError: name 'turtle' is not defined
[Finished in 0.6s]
#因为此命令只导入了penup函数,并没有导入turtle库,因此有关turtle的命令是会报错的

from module import *

from module import *是将module中的全部函数方法(或叫做成员)都导入到当前的global namespace中,可以直接通过函数名来访问或调用其中的函数。但是一般来说Python不建议这么使用,一是会大量占用global namespace的空间且Loda时间相对也长,二是可能会引发潜在错误name conflict。即当导入的库的成员中名字和解释器中其他的函数名字发生冲突时会出现难以预估的错误,且debug也很难去查错。因此,在很多时候是不建议使用此命令的。

转载
from module import * 时如何限定import的内容
python中from module import * 的一个陷阱

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值