标签:
#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"
#!/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)
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)
两者的差别是,import 后面跟的必须是一个类型(type)。而__import__() 的參数是一个字符串,这个字符串可能来自配置文件。也可能是某个表达式计算结果。比如
#!/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)
标签:
原文地址:http://www.cnblogs.com/yxwkf/p/5093297.html