• from import 的认识


    # from my_moudle import login
    # # # 1.找my_moudle模块
    # # #2 开辟属于这个模块的命名空间
    # # #3执行这个模块(注意这里的意识是读完这个文件)
    # # # 知道了要import 的是login这个名字。就会在本文件中创建一个变量login,指向模块命名空间中的login函数
    # # # print(my_moudle.name)   #NameError: name 'my_moudle' is not defined  .因为这里并没有建立引用指向my_moudle 模块
    # # # 这里没有引用指向moudle模块
    # #
    # # # 导入了什么,就能使用什么,不导入不意味者不存,只是没有建立文件到模块中其他名字的引用,
    # #
    # # login()  # 登录 dudu
    # # # 因为my_moudle先执行了,所以name = "dudu"
    # #
    # # def login():
    # #     print("本文件")  # 在这里实现了login,但是在之前调用的login的时候没有login这个函数,所以会执行模块中的函数
    # #
    # #
    # # login()
    # #
    # # # 登录 dudu
    # # # 本文件
    # #
    # # from my_moudle import login  # 找到moudle发现已经导入了,import login 再次建立对模块中login的引用
    # # login()
    # # # 当模块中导入的方法或者变量和文件重名的时候,那么这个歌名字只代表最后一次对他赋值的那个方法或者变量
    # #
    # # # 登录 dudu
    # # # 本文件
    # # # 登录 dudu
    #
    # name = "本文件"
    # login()   #登录 dudu
    #
    # # 在本文件中对全局变量的修改不会影响到模块中变量的引用
    #
    
    
    # # 重命名
    # from my_moudle import login as l  #只是改变了本文件中对login的引用
    # l()
    
    # # 导入多个模块
    # from my_moudle import login,name
    # login()
    # print(name)
    # name = "太亮"  # 这里只是相当于修改了对name的引用
    # login()
    # print(name)
    #
    # #登录 dudu
    # # dudu
    # # 登录 dudu
    # 太亮
    
    # # 重命名
    # from my_moudle import login as l, name as n
    # l()
    # print(n)
    
    #from 模块 import * # 表示对模块中所有元素同名引用
    
    # __all__ 可以控制 from 模块 import *  中 * 的导入情况
    from my_moudle import *
    login()
    print(name)

    my_moudle.py

    __all__ = ["login"]
    name = "ho"
    def login():
        print("登录",name)
    name = "dudu"
  • 相关阅读:
    ceph中pool的管理
    ubuntu 16.04安装ceph集群(双节点)
    win7设置开机启动virtualBOX虚拟机
    Linux Linux程序练习十九
    Linux Linux程序练习十八
    Linux Linux程序练习十七
    Linux 网络编程详解十二
    Linux socket多进程服务器框架三
    Linux socket多进程服务器框架二
    Linux socket多进程服务器框架一
  • 原文地址:https://www.cnblogs.com/yfjly/p/10608414.html
Copyright © 2020-2023  润新知