注意:笔者的python环境是python3.x
#!/usr/bin/env python3
#coding=utf-8
#模块:在调用模块中的函数时,必须这样引用:模块名.函数名
'''
import selfinfo
selfinfo.info();
#模'''
#模块导入方式
'''
from selfinfo import info #只导入info函数部分内容,这个时候info就变成了当前空间的函数之一
info()
'''
'''
from selfinfo import * #导入selfinfo模块的所有内容
info()
'''
#命名空间 作用域
#Python 会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。因此,如果要给全局变量在一个函数里赋值,必须使用 global 语句。
'''
out=1
def namespace():
global out #定义了函数里面用的out都是全局变量out
print(out) #out=2不存在正常,调用的是全局变量,out=2存在就不正常了,因为就会吧out当做局部变量,但是局部变量在定义前调用,所以报错了
out=2
return
namespace()
print(out)
'''
#dir()函数:返回的列表容纳了在一个模块里定义的所有模块,变量和函数
'''
import selfinfo
#print(dir(selfinfo))
print(locals()) #如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。
print(globals()) #如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。
#reload(selfinfo) #python3.x中已经没有这个函数了。当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数
'''
#包:跟java里面的package很像,包就是文件夹,
#python3.x不用考虑这个:但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包
from action.action import say
say();
模块代码
selfinfo.py模块 跟主程序同目录
#!/usr/bin/env python3
#coding=utf-8
#个人信息模块
def info():
print("我是模块助手")
return
包代码
action文件夹action.py代码
#!/usr/bin/env python3
#coding=utf-8
def say():
print("我会说话")
return
整个工程的代码层次图: