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

原文地址:https://www.cnblogs.com/microtiger/p/13618708.html