模块与包

模块

模块中的代码

from math import pi
import time
# __all__ = ['read1','read2']      与   from my_module import *  一起使用
print('in my module')
money = 20

def read1():
    print('in read 1',money)

def read2():
    print('in read 2')


def login():
    print('逻辑')

if __name__ == '__main__':       #当在脚本中运行时 __name__ 为  __main__
    login()                      # 用作测试脚本时使用,当模块被调用也不会执行
                    # 在脚本外调用__name__ 会显示__name__所在模块的名字

 

- 调用模块的几种方式:

#方法一:
import
my_module my_module.read1() #调用模块方法
print(my_module.money) #调用模块中变量
#把所有模块中的方法都放进内存中,占用内存大
############ #方法二: from my_module import read1,read2 as r2,money
#模块中的方法名字如果与调用文件中的冲突 可以把调用模块方法重命名 read1() r2() print(money) #只根据自己的需要导入模块中的方法,占内存小 如果你导入的模块过大,而你要用的功能很少可以使用 ############# #方法三:
from
my_module import * #与模块中的__all__=['调用的方法名']一起使用时,all中有啥才能掉啥,如果不写__all__什么都能调用,如果__all__=[] 啥都不能调
#
模块中的名字不要和自己文件中的冲突 冲突时用自己文件中的
read1() read2() print(money)

 

- 调用模块中模块的方式:

#方法一:  当前程序中没有导入时间模块,但my_module中导入时间模块了
import my_module my_module.time.sleep(10) #调用my_module中的时间模块 睡了10秒
my_module.read1() #方法二: 程序中没有调入math模块 但程序中可以使用pi
from my_module import *
print(pi) #


 

模块中查看方法

sys.modules:当前引入的所有模块
sys.path:导入模块的时候依据的路径列表

查看一模块中所有的方法与变量

dir(模块名)      # 列出模块中的方法和导入的模块和变量名称
dir() # 不加变量,只是列出当前模块中的方法和导入的模块和变量名称

 dir()不会列举出内建函数或者变量的名字,它们都被定义到了标准模块builtin中,可以列举出它们,

import builtins
dir(builtins)


 

 

#在manage.py模块中,调用versions.py模块中create_resource方法
from ..api.versions import create_resource def main(): print('from manage.py') #在versions.py模块中
def create_resource(conf): print('from version.py: ',conf) #在包外调用包中 manage方法 from gl.cmd import manage manage.main() manage.create_resource('ccc')
#在manage.py模块中,调用versions.py模块中create_resource方法
from ..api.versions import create_resource
def main():
    print('from manage.py')

#在versions.py模块中
def create_resource(conf):
    print('from version.py: ',conf)

#在cmd包中的__init__.py中
from . import manage

#在包外调用包中 manage方法
from gl import cmd
cmd.manage.main()
cmd.manage.create_resource('ccc')

 

模块与包

http://www.cnblogs.com/Eva-J/articles/7292109.html#_label13

 

posted @ 2017-09-23 15:54  JAYWX  阅读(108)  评论(0编辑  收藏  举报