python的模块导入问题_python的模块导入问题

以下内容参考:http://www.xinxingjiaocheng.com/online/item/7/89

1.给模块起个别名

如果一个模块的名字很长很长,就像这样comput_the_value_of_the_variable,你导入模块是这样子:

import comput_the_value_of_the_variable,导入之后每次调用里面的变量或者函数的时候都要写这么一长串的名字,我就问你烦不烦?尤其是当你是一个崇尚简约的人的时候。即便你打头几个字母,pycharm会自动给你调出来这个串,估计你也不太想一次又一次的看见它。此时我们可以给它起个别名,这样:import comput_the_value_of_the_variable as sky,这样你需要调用里面的dongxi的时候只需写sky.dongxi。

2.从一个模块中导入全部内容与导入部分内容(个别变量或函数)

假定模块名是hello.py,里面有变量a,b,c和函数f1(),f2(),f3(),导入全部函数和变量:from hello import *

导入部分内容:from hello import a,b,f3()

这样子的话调用函数的时候不用写模块.函数名了,直接怼函数名或者变量名就行。

3.目录作为模块

实际上,1和2在导入模块是是默认当前的程序与导入的模块在同一个文件夹之下,如果导入非当前文件夹之下的文件模块,会出错哒。所以,正确的模块导入方式是带上目录名字:比如lianxi_6.py的文件路径是:D:\good\s12_1\day2,那么导入lianxi_6模块的时候(假如当前的.py文件是test4.py,路径是:D:\good\s12_1\star,它应该和lianxi_6.py文件在同一级别的上级文件目录s12_1之下)就该酱紫: import day2.lianxi_6 as you,day2是lianxi_6.py文件所在的文件夹的名字。

ContractedBlock.gif

ExpandedBlockStart.gif

importday2.lianxi_6 as you

you.hello()

you.bye()

View Code

hello()函数和bye()函数(在lianxi_6.py文件里面定义的):

ContractedBlock.gif

ExpandedBlockStart.gif

defhello():print('黄河远上白云间,')print('一片孤城万仞山。')defbye():print('羌笛何须怨杨柳,')print('春风不度玉门关。')

View Code

假如一个目录里面有很多(文件)模块需要我们导入,那我们要一直写from hello import *...吗?不,此时我们可以在这个目录下新建一个__init__.py文件(注意下划线是两个),用这个文件把所有需要导入的模块统一起来。里面这样写:

from good.a import *

from good.b import *

from good.c import *

a,b,c是good文件夹下的.py文件,也就是需要导入的那些模块。

此时调用方法是:

ContractedBlock.gif

ExpandedBlockStart.gif

importgood

good.f1()

good.f2()

View Code

也可以在__init__.py文件中定义__all__变量,这样写:

__all__=['a','b','c']

此时调用方法是:

ContractedBlock.gif

ExpandedBlockStart.gif

from good import *a.f1()

b.f2()

c.f3()

View Code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值