def main(): print __doc__ print __file__ #模块 mymodule.print_func('world') print_func2('john') #命名空间和作用域 print Money ChangeMoney() print Money ######## ##dir()函数 ######## content = dir(math) print content content = dir(mymodule) print content ######## ##globals() 和 locals() 函数 ######## ''' 根据调用地方的不同,globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字。 如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。 如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。 两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。 ''' ######## ##reload() 函数 ######## ''' 当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。 因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。 该函数会重新导入之前导入过的模块。语法如下: reload(module_name) ''' ######## ##Python中的包 ######## ''' 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。 简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。 ''' #实例 考虑一个在 package_runoob 目录下的 runoob1.py、runoob2.py、__init__.py 文件 from package_runoob.runoob1 import runoob1 from package_runoob.runoob2 import runoob2 runoob1() runoob2()
#!/usr/bin/python # -*- coding: UTF-8 -*- from package_runoob.runoob1 import runoob1 from package_runoob.runoob2 import runoob2 runoob1() runoob2()
#!/usr/bin/python # -*- coding: UTF-8 -*- from package_runoob import runoob1 from package_runoob import runoob2 runoob1.runoob1() runoob2.runoob2()
def print_func(par): # From…import 语句 from modname import name1[, name2[, ... nameN]] # 搜索路径 # # 当你导入一个模块,Python 解析器对模块位置的搜索顺序是: # # 1、当前目录 # 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。 # 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。 # # 模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。 # "import module_name" 的本质是将"module_name.py"中的全部代码加载到内存并赋值给与模块同名的变量写在当前文件中, # 这个变量的类型是'module';<module 'module_name' from 'E:\\PythonImport\\module_name.py'> # 导入一个模块 import model_name # 导入多个模块 import module_name1,module_name2 # 导入模块中的指定的属性、方法(不加括号)、类 from moudule_name import moudule_element [as new_name] #dir() 函数一个排好序的字符串列表,内容是一个模块里定义过的名字。 import math content = dir(math) print content # reload() 函数 # # 当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。 reload(module_name) # 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。 # package_runoob/runoob1.py def runoob1(): print "I'm in runoob1" # package_runoob/runoob2.py def runoob2(): print "I'm in runoob2" #package_runoob/__init__.py if __name__ == '__main__': print '作为主程序运行' else: print 'package_runoob 初始化' #调用包 from package_runoob.runoob1 import runoob1 from package_runoob.runoob2 import runoob2 runoob1() runoob2() #异常 try: 正常的操作 ...................... except: