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这个类可见

  • 相关阅读:
    第三节:模板模式——在Spring框架应用
    第二节:模板模式——模板模式应用
    idea ---- intelij IDEA安装
    计算机基础 ---- 编码(er)
    preg_match一些问题
    php 两个值进行比较的问题
    php中in_array一些问题
    配置完php.ini中的扩展库后,重启apache出现错误1067
    基于Intel 174;E810 的OVS-DPDK VXLAN TUNNEL性能优化
    tc filter 工作模式:传统模式和 direct-action 模式
  • 原文地址:https://www.cnblogs.com/microtiger/p/13618708.html
Copyright © 2011-2022 走看看