zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    C++与AS3
    基于Hadoop的大数据平台实施记——整体架构设计
    as3用鼠标拖动图形拼图——灰常简单的教程
    as3 与js相互通信
    cocos2d-x获取系统时间
    lucene3.6笔记添加搜索功能
    Ubuntu小私房(3)--Uubutnu启动美化大变身
    C++一维数组和指针的关系总结
    poj2486 Apple Tree (树形dp)
    opencv 中cvZero()的使用
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5093297.html
Copyright © 2011-2022 走看看