以下内容参考: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文件所在的文件夹的名字。

import day2.lianxi_6 as you
you.hello()
you.bye()

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

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

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

from good.a import *

from good.b import *

from good.c import *

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

此时调用方法是:

import good
good.f1()
good.f2()

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

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

此时调用方法是:

from good import *
a.f1()
b.f2()
c.f3()

python的模块导入问题的更多相关文章

  1. [python]关于在python中模块导入问题追加总结

    [背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...

  2. python random模块导入及用法

    random是程序随机数,很多地方用到,验证码,图片上传的图片名称等,下面说说python random模块导入及用法 1,模块导入 import random 2,random用法 random.r ...

  3. python Calendar 模块导入及用法

    Calendar 是python 日历模块,此模块的函数都是日历相关的,例如打印某月的字符月历,星期之类的模块,下面剖析python Calendar 模块导入及用法. 1,python导入日历模块 ...

  4. python中模块导入问题(已解决)

    想在python中导入request包: 无此模块,于是先安装requests包: 但是提示"Requirement already satisfied".在提示的相应目录里,找到 ...

  5. python自定义模块导入方法,文件夹,包的区别

    python模块导入,网上介绍的资料很多,方法也众说纷纭.根据自己的实践,感觉这个方法最简单直接,而且可以与主流的python ide生成的工程是一样的. 规则只有三条 1.      严格区分包和文 ...

  6. python的模块导入机制

    在python中用import或者from...import来导入相应的模块. 模块(Module)其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模 ...

  7. python之模块导入和包

    一.何为模块 1.一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.模块目的和函数,对象等一样,是为了代码的复用性而存在的.即一个py程序写了很多功能,也可 ...

  8. Python之模块导入

    import sys #import module (.py)import functools #名词空间 functoolsprint(functools) print("-------- ...

  9. python之模块导入和重载

    模块导入和重载 模块导入通过import语句实现,但是在同一次会话中只运行一次. 若想要再次运行文件,调用imp标准库中的reload函数: >>> from imp import ...

随机推荐

  1. JAVA Eclipse的Android文件结构是怎么样的

    默认res目录下面存放了界面需要的布局和图片文件,之所以图片分为hdpi,ldpi,mdpi这些,是为了不同的设备准备的(高/中/低分辨率的图片)   Bin目录类似于VS的debug或者releas ...

  2. POJ 1785 Binary Search Heap Construction (线段树)

    题目大意: 给出的东西要求建立一个堆,使得后面的数字满足堆的性质.并且字符串满足搜索序 思路分析: 用线段树的最大询问建树.在建树之前先排序,然后用中序遍历递归输出. 注意输入的时候的技巧. .. # ...

  3. linux 查找并操作

    find -depth 1 -name 'aa*' | xargs tar -cvf aa.tar 这个命令将为查找当前目录下的所有已aa开头的文件,然后将所有结果"执行打包",打 ...

  4. 国内云引擎平台概览——新浪SAE,阿里ACE,百度BCE

    新浪SAE 平时大家的測试server都是执行在自己的PC上面,用Tomcat或者IIS搭建的本机server. 事实上新浪云平台SinaAppEngine也是挺好用的. 今天总结一下我使用过程中的一 ...

  5. 连续调用scanf的问题总结

    对于非常简单的scanf函数,一直使用,但是却是有很多的知识点没有掌握好,现总结如下: 1.多个scanf之后,后序以 scanf("%c",&c) 当程序连续调用scan ...

  6. CocoaAsyncSocket 文档1:Socket简单介绍

    前言 CocoaAsyncSocket是 IOS下广泛应用的Socket三方库,网上相关样例数不胜数.这里我就不直接上代码,本文由B9班的真高兴发表于CSDN博客.另辟一条思路:翻译SocketAsy ...

  7. PHP计划任务:如何使用Linux的Crontab执行PHP脚本(转)

    我们的PHP程序有时候需要定时执行,我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现.但这两种方法都不太可靠,不稳定.我们可以借助Linux的Crontab工具来稳 ...

  8. ssh port forwarding

    SSH端口转发,总是忘记,今天记录下.端口转发有两种,一个是local一个是remote(可能还有一种dynamic,还没有研究) 贴个链接 https://www.ssh.com/ssh/tunne ...

  9. 【Python】IDLE启动错误

    启动IDLE时报Subprocess Startup Error错误 错误信息 IDLE's subprocess didn't make connection.Either IDLE cant't ...

  10. 史上最浅显易懂的Git教程1

    工作区(Working Directory)就是你在电脑里能看到的目录, 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stag ...