A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 dingliu 于 2018-6-27 19:10 编辑

区别1:import导包时,需要使用包名.属性或方法的形式调用,from module import *可以直接使用属性名或方法调用

我自定义的一个moudle,里面有一个方法sayhi,还有一个变量version
[Python] 纯文本查看 复制代码
# Filename: text.py
def sayhi():
    print('Hi this is mymodule speaking')

version='1.0'

引用这个module的两种方式

# 方式一:import module
[Python] 纯文本查看 复制代码
import text
text.sayhi()


#方式二:from module import *
[Python] 纯文本查看 复制代码
from text import *
sayhi()


这两种方式都能正常运行,并且结果都一样,
如果使用import的话,就需要使用导入的module名称来引用模块的方法,成员变量了
如果使用from … import 就可以直接使用该模块中的方法 成员变量了


区别二:当模块中有__all__=[属性,方法]方法时,使用from module import *只能导入__all__的列表中定义的属性和方法,import module还是可以全部调用,不受影响

[Python] 纯文本查看 复制代码
# Filename: text.py
__all__ = ['version']
def sayhi():
    print('Hi this is mymodule speaking')

version='1.0'


# 方式一:import module
[Python] 纯文本查看 复制代码
import text
print(text.version)
text.sayhi()

结果:


#方式二:from module import *
[Python] 纯文本查看 复制代码
from text import *
print(version)
sayhi()

结果:



区别三:import可以修改被导入的模块中的全局变量,from module import *不能修改被导入模块中的全局变量
方式一:import module
[Python] 纯文本查看 复制代码
#main.py
from send import *
from show import *
# 主流程
def main():    # 发女朋友    
    send()    # 秀恩爱    
    show()
if __name__ == '__main__':    
    main()


[Python] 纯文本查看 复制代码
#send.py
import girl
# 发女朋友
def send():    
    print("发女朋友了,翠花是你的了")    
    girl.have_girl = True    

[Python] 纯文本查看 复制代码
#show.py
import girl
# 秀恩爱
def show():    
    if girl.have_girl == True:        
    print("我有女朋友了,好开心")    
else:        
    print("单身贵族")

[Python] 纯文本查看 复制代码
#girl.py
# 共同变量模块
have_girl = False #False代表没有女朋友 True代表有女朋友

结果:


方式二:from module import *
[Python] 纯文本查看 复制代码
#main.py
from send import *
from show import *
# 主流程
def main():    # 发女朋友    
    send()    # 秀恩爱    
    show()
if __name__ == '__main__':    
    main()


[Python] 纯文本查看 复制代码
#send.py
from girl import *
# 发女朋友
def send():    
    print("发女朋友了,翠花是你的了")    
    have_girl = True

[Python] 纯文本查看 复制代码
#show.py
from girl import *
# 秀恩爱
def show():    
    if have_girl == True:       
    print("我有女朋友了,好开心")    
else:        
    print("单身贵族")

[Python] 纯文本查看 复制代码
#girl.py
# 共同变量模块
have_girl = False #False代表没有女朋友 True代表有女朋友

结果:


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马