zoukankan      html  css  js  c++  java
  • import 和 from … import 模块的变量、方法引用差异

    import 和 from … import 模块的变量、方法引用差异

    还是上面例子中的模块 support.py:

    def print_func( par ):
       print "Hello : ", par
       return
    

      

    使用 import 引入并调用 support 模块的正确方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    # 导入模块
    import support
     
    # 现在可以调用模块里包含的函数了
    support.print_func("Runoob")
    

      

    提示:并不能直接使用 print_func() 实现调用,必须将引入的模块名称当作一个对象,调用这个模块对象下的方法 print_func,这时才能实现调用。

    使用 from … import 模块的正确方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    # 导入模块
    from support import *
     
    # 现在可以调用模块里包含的函数了
    print_func("Runoob")
    

      

    提示:可以直接使用 print_func() 实现调用。

    笔者建议:一般来说,推荐使用 import 语句,避免使用 from … import,因为这样可以使你的程序更加易读,也可以避免名称冲突。

      xiaomaofeng

    1. 调用模块属性的区别

    import 模块名
    模块名.xxx = 引用
    
    from 模块名 import *
    xxx = 拷贝  # 能修改属性值  

    函数,类... : "import 模块名" 和 "from 模块名 import *" 都是引用。

    2. 私有属性两种导入的区别

    # . 类中的私有属性
    # 本质做了一个名字重整
    class test()
        self.__name

    __name 名字重整成 _test__name。

    _littlethree : 模块的私有属性(数据)。

    • from 模块 import * : 导入模块时,会跳过私有属性;
    • import 模块 : 通过引用可以访问私有属性

    两个import语义有差异

    import datetime
    print(datetime.datetime.now())
    

    是引入整个datetime包

    from datetime import datetime
    print(datetime.now())
    

    是只引入datetime包里的datetime类

    所以import之后前者是datetime这个包可见 后者是datetime.datetime这个类可见

  • 相关阅读:
    [OpenGL(C)] 旋转立体三角形
    [MSSQL] (命令)列出所有表.字段名.主键.类型.长度.小数位数等信息
    [端口] 端口大全及端口关闭方法
    [网络] IP的划分,超详细
    [C++] 面向对象院校管理系统
    [JSVM2] (开源)JS星际争霸(for JSVM2)
    [MSSQL,MySQL,Oracle] Join用法
    [其它] .NET 世界排名榜
    [C] (回溯法)计算总费用最小费用
    [OpenGL(Win32)] 3D 轮廓字体
  • 原文地址:https://www.cnblogs.com/microtiger/p/13618708.html
Copyright © 2011-2022 走看看