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

  • 相关阅读:
    最小生成树(Prim和Kruscal)
    SPFA(还是稍微写写吧,虽然没什么用)
    最短路径(随便写写)(Floyd,Bellman-Ford,Dijkstra)
    Just a Hook HDU
    数论逆元
    最长上升子序列(LIS)算法(附Codeforces Round #641 (Div. 2),B题题解)
    Educational Codeforces Round 86 (Rated for Div. 2)
    Codeforces Round #633 (Div. 2)
    Codeforces Round #631 (Div. 2)
    Mayor's posters(线段树离散化)
  • 原文地址:https://www.cnblogs.com/microtiger/p/13618708.html
Copyright © 2011-2022 走看看