python 入门学习—模块导入三种方式及中文凝视

python 入门学习—模块导入三种方式及中文凝视

大家好,又见面了,我是全栈君。

Python 有三种模块导入函数

1、 使用import 导入模块

import modname : 模块是指一个能够交互使用,或者从还有一Python 程序訪问的代码段。仅仅要导入了一个模块,就能够引用它的不论什么公共的函数、类或属性。模块能够通过这样的方法来使用其他模块的功能。
用import语句导入模块。就在当前的名称空间(namespace)建立了一个到该模块的引用.这样的引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包括模块的名字。所以不能仅仅使用 funcname,而应该使用 modname.funcname.

注意:可增加以下的使Python支持中文凝视

#coding:gbk或#coding:utf-8或##-*- coding : gbk -*-


导入系统的模块

       比方我在家文件夹下创建一个m.py的文件,我们导入了很多的系统模块,比方time,string等等。这边就相似c++里面的include

#!/bin/env python

import time
import string
import re
import socket
import threading

time.sleep(10)

print "java"

导入私有的模块

m.py文件

#!/bin/env python#coding:gbk#coding:utf-8#上面的载入是支持中文凝视def plus(a ,b):    #"""XXX""" 是函数的说明或使用    """this is a test +"""    a = a+b    return a+b

使用import 载入m.py模块载入

#!/bin/env python
#coding:gbk
#coding:utf-8
"利用sys模块导入指定Python文件的路径"
import sys
sys.path.append("./")
"导入Python文件"
import m

print m.plus(12,3)

print help(m.plus)

2、 from modname import * 模式载入模块

from modname import funcname 
from modname import fa, fb, fc 
或者  from modname import * 
与第1种方法的差别:funcname 被直接导入到本地名字空间去了。所以它能够直接使用,而不须要加上模块名的限定 
* 表示,该模块的全部公共对象(public objects)都被导入到 当前的名称空间,也就是不论什么仅仅要不是以”_”開始的东西都会被导入。 
modname没有被定义,所以modname.funcname这样的方式不起作用。而且。假设funcname假设已经被定义,它会被新版本号(该导入模块中的版本号)所替代。

假设funcname被改成指向其他对象,modname不能不会觉察到。 
建议:

1)假设你要常常訪问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import 
2)假设你想要有选择地导入某些属性和方法。而不想要其他的,使用 from module import 
3)假设模块包括的属性和方法与你的某个模块同名,你必须使用import module来避免名字冲突 
4)尽量少用 from module import * 。由于判定一个特殊的函数或属性是从哪来的有些困难,而且会造成调试和重构都更困难。

 

#!/bin/env python
#coding:gbk
#coding:utf-8
"利用sys模块导入指定Python文件的路径"
import sys
sys.path.append("./")
"第二种导入Python文件"
from m import plus

print plus(12,3)

print help(plus)

3、使用内敛函数__import__

除了前面两种使用importkeyword的方法以外。我们还能够使用内建函数 __import__() 来导入 module。

两者的差别是,import 后面跟的必须是一个类型(type)。而__import__() 的參数是一个字符串,这个字符串可能来自配置文件。也可能是某个表达式计算结果。比如 
mymodule = __import__ (’module_name’) 
附注: 
1)模块的内容都放在一个模块文件里,如 mymodule 的内容应该放在PYTHONPATH 文件夹下的一个mymodule.py中,C实现的除外 
2)包能够将几个模块名称空间组织起来, 如A.b 就表示在包A中的一个子模块b 

#!/bin/env python
#coding:gbk
#coding:utf-8
"利用sys模块导入指定Python文件的路径"
import sys
sys.path.append("./")
"第二种导入Python文件"
my = __import__("m")

print my.plus(12,3)

print help(my.plus)

參考资料:

1、http://www.cnblogs.com/allenblogs/archive/2011/11/15/2055149.html
2、http://blog.csdn.net/chenguolinblog/article/details/11521611

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116470.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java链表listnode是线程安全的吗_两个升序链表合并为一个升序链表

    java链表listnode是线程安全的吗_两个升序链表合并为一个升序链表/***描述:删除链表中等于给定值val的所有节点。样例:给出链表1->2->3->3->4->5->3,和val=3,你需要返回删除3之后的链表:1->2->4->5。分析:1.首先判断head是不是空,为空就直接返回null2.然后从head.next开始循环遍历,删除相等于val的元素3.最后判断head是否和val相等,若相等,head=head.next

    2022年4月19日
    53
  • 图书馆管理系统程序测试计划

    图书馆管理系统程序测试计划

    2021年11月18日
    51
  • 模电——基本运算放大器原理[通俗易懂]

    模电——基本运算放大器原理[通俗易懂]★运算放大器电路图标:Vp:同相输入端Vn:反向输入端Vo:输出端1.同相输入端与反向输入端的意义。 同相位 Vp Vn Vo 上升 接地或稳定的电平 上升 下降 接地或稳定的电平 下降 反相位 Vp Vn Vo 上升 接地或稳定的电平 下降 .

    2022年4月29日
    78
  • css中100vh 加减运算[通俗易懂]

    css中100vh 加减运算[通俗易懂]vh/vwvh:相对于视窗的高度,视窗被均分为100单位的vh;vw:相对于视窗的宽度,视窗被均分为100单位的vw;vmax:相对于视窗的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax;vmin:相对于视窗的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin;视区所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。calcca…

    2022年5月5日
    55
  • 涨姿势——教你如何获取图片上的文字

    涨姿势——教你如何获取图片上的文字

    2021年9月18日
    44
  • MATLAB 2017b 安装教程 (推荐)

    MATLAB 2017b 安装教程 (推荐)MATLAB2017b安装教程matlab2017b安装包及安装教程链接:https://pan.baidu.com/s/1riEvbTQnDSeo7bhix7YLZQ密码:z4em本Markdown编辑器使用[Sta**重点内容**ckEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Matlab安装教程:1、下载文件,得到破解文件。*点…

    2022年5月28日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号