zoukankan      html  css  js  c++  java
  • day8 模块与包

    导入模块 发生的三件事

     '''
    1, 他在内存中开辟了一个以tbix命名的空间。
    2, 你模块中的所有内容都加载到内存。
    2, 你要通过tbjx.的方式去引用模块中的对象。
    '''

    print('from the tbjx.py')
    __all__=['read1','read2']#import tbjx * #只引入列表里的名称或方法
    name = '太白金星'


    def read1():
    print('tbjx模块:', name)


    def read2():
    print('tbjx模块')
    read1()


    def change():
    global name
    name = 'barry'
    def func3():
    with open('a.txt',encoding='utf-8',mode='w'):
    pass
    print('func3 调试成功')

    if __name__ == '__main__': #此文件当作执行文件时执行下面的代码 但被导入时 __name__ == 'tbjx'也就是等于文件名只导入上面的代码。调试的时候用功能
    func3()

    import 包 发生了三件事:

    '''
    1,在内存中开辟一个名称空间aaa
    2,自动将包下面的__init__文件中代码加载到内存。
    3, 通过aaa. 获取模块中的对象。
    '''

    # 总结:
    # 执行文件!!的当前目录是在sys.path的第一个参数。
    # 所以当前目录的文件可以直接import。
    # 无论怎么样导入文件import 还是 from ... import ... 一定是从执行文件当前目录开始。

    # 包的总结:
    # 如果要是 from 包.包.包(执行文件同一个目录,sys.path) import ... 那么 __init__ 可以不用任何操作
    # .的左边一定是包
    # 如果你是 import 包  __init__ 必须要各种写。

    五,py文件的两种功能

    复制代码
    #编写好的一个python文件可以有两种用途:
        一:脚本,一个文件就是整个程序,用来被执行
        二:模块,文件中存放着一堆功能,用来被导入使用
    
    
    #python为我们内置了全局变量__name__,
        当文件被当做脚本执行时:__name__ 等于'__main__'
        当文件被当做模块导入时:__name__等于模块名
    
    #作用:用来控制.py文件在不同的应用场景下执行不同的逻辑(或者是在模块文件中测试代码)
        if __name__ == '__main__':
  • 相关阅读:
    mybatis 版本问题
    sonar-maven-plugin问题
    spring容器&classLoader
    Mybatis知识点整理
    防重复提交的方式汇总
    秒杀系统设计整理
    MySQL事务隔离级别&锁
    disruptor解读
    springboot 2.x集成log4j2调试日志无法关闭问题
    Java并发——volatile
  • 原文地址:https://www.cnblogs.com/lieying6011/p/10055331.html
Copyright © 2011-2022 走看看