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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 国际企业邮箱优势有哪些?国际邮箱申请方法教学「建议收藏」

    国际企业邮箱优势有哪些?国际邮箱申请方法教学「建议收藏」相信很多小伙伴都用过邮箱,但是大家只会用邮箱收发邮件,处理工作的事务,事实上并不了解邮箱。企业邮箱的优势都有哪些,如何更好地使用邮箱呢?那么下面,小编就以TOM企业邮箱为例,为大家详细讲解邮箱的优势吧!国际企业邮箱优势市场上主流邮箱产品有普通、VIP和企业邮箱三种,针对于国际业务邮件,其中以企业邮箱为首的服务最为全面,其次是VIP邮箱。优势一:海外通道企业邮箱最大优势在于,可以和国外邮箱进行信件往来,原因来自于企业邮箱设有独立的海外通道,将国内和国外的邮箱通道很好的进行连通,有效保障收件收发稳定。

    2022年9月15日
    0
  • django分页器的用法_MySQL实现数据分页

    django分页器的用法_MySQL实现数据分页前言当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面PageNumberPagination:基础分页器,性能略差LimitOffsetP

    2022年7月30日
    5
  • openssl安装方式(Ubuntu下)

    openssl安装方式官方网站1、解压2、编译安装3、生成软连接4、测试官方网站https://www.openssl.org/source/1、解压我这里安装的版本时1.0.2,其实都一样,默认版本是1.1.1拿到源码后先解压源码文件openssl-1.0.2u.tar.gz2、编译安装进入源码目录:cdopenssl-1.0.2u指定安装路径编译安装sudo./config–prefix=/usr/local/opensslsudomake

    2022年4月7日
    292
  • 服务器上的MSDTC不可用解决办法[通俗易懂]

    服务器上的MSDTC不可用解决办法[通俗易懂]MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统MicrosoftPersonalWebServer和MicrosoftSQLServer。该服务用于管理多个服务器.位置:控制面板--管理工具--服务--DistributedTransactionCoordinator依存关系:R

    2022年10月26日
    0
  • Java Map集合的详解「建议收藏」

    Java Map集合的详解「建议收藏」一,Map先说一下Map吧~如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map。Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。在Map中键(key)可以使任意类型的对象。Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value)。一个键(key)和它对应的值构成ma

    2022年5月30日
    32
  • python之运算符

    运算符的定义运算符类型1.算数运算符2.比较运算符3.赋值运算符4.位运算符5.逻辑运算符6.成员运算符7身份运算符详情介绍1算数运算2比较运算3赋值运算4位运算:5逻辑运

    2022年3月29日
    41

发表回复

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

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