python基础:模块的导入方式

一、模块的概念介绍
一个包含python代码的文件就是一个模块。
使用模块的作用:
1.现在程序开发文件比较大,都放在一个文件中维护不方便,拆分成多个文件方便维护 与管理
2.模块可以增加代码的重用率

二、创建模块
模块本身就是一个文件,所有py代码都可以在文件中直接书写。不过我们开发共用模块时,最好在模块中书写以下内容。

变量 模块中的属性值
函数 单独的功能
类 相似功能组合
模块测试代码 临时使用,被导入时不会执行

注意:
(1).模块名称遵循标识符。
(2).模块只有第一次被导入的时候执行,多次导入不会执行。
例:model01.py是一个简单的模块,这个模块的功能就是打招呼。
print(‘haha’)
name=‘zs’
def say_hello():
print(‘hello’)

print(‘你好,世界’)
print(name)

三、模块导入方式
使用模块的步骤:
1、导入模块
2、使用模块
-模块名.变量或者函数
注意:
1、第一次导入模块的时候,模块会从上往下执行一遍
2、模块可以导入多次,就不会再执行模块中的内容,不会再执行。
具体导入方式:
1、import 模块名
2、import 模块名 as 别名
3、import 模块名1,模块名2,… 一行导入多个模块。
4、from … import …
5、from … import … as 别名
6、from … import 功能1,功能2,…
7、from … import * 导入所有

1、import 模块名
例如导入模块 model01.py
model01.py内容为:

print('haha')
name='zs'
def say_hello():
    print('hello')

print('你好,世界')
print(name)

导入过程:

# 导入模块
import model01
model01.say_hello()

# 又导入一次
name2=model01.name
print(name2)

运行结果:

haha
你好,世界
zs
hello
zs

2、import 模块名 as 别名
同样导入model01模块

import model01 as m
m.name
ret=m.say_hello()
print(ret)  

运行结果:

haha
你好,世界
zs
hello
None

3、import 模块名1,模块名2,… 一行导入多个模块。
创建新的模块model02.py,其程序如下

def test():
    print('hello,你好')
num=10
age=10
name='zs'

model01.py程序为:

  print('haha')
    name='zs'
    def say_hello():
        print('hello')
    
    print('你好,世界')
    print(name)

调用程序为:

import model01
import model02
model01.say_hello()
model02.test()

#也可以写成:
import model02,model01
model02.test()
model01.say_hello()

运行结果为:

haha
你好,世界
zs
hello
hello,你好

hello,你好
hello

4、 from … import …局部导入方式
当使用模块中的部分功能的时候,就可以使用局部导入方式。
from 模块 import 某个函数或者类。
作用:直接导入模块中的某个函数或者某个类或变量
from 模块名称 import 变量名(函数名或者变量名)
导入test函数
注意:导入test函数,只能使用test函数,不能使用其他内容
调用函数test()遵循就近原则

例如调用model02时:
model02.py,其程序如下

def test():
    print('hello,你好')
num=10
age=10
name='zs'

导入model02.py的程序为

from model02 import test
def test():
    print('demon07-test')
test()  # 调用自己的,不会调用model02

运行结果是:

demon07-test

5、from … import … as 别名

# 起一个别名调用函数
from model02 import test as m
m()  #通过别名调用函数

运行结果是:

hello,你好

6、from … import 功能1,功能2,…

from model02 import test,num
print(num)
test()

运行结果是:

demon07-test

7、from … import * 导入所有
from …import * 把原模块中中所有的不是以下划线(_)开头的名字都导入到当前位置,大部分情况下我们的python程序不应该使用这种导入方式,因为*你不知道你导入什么名字,很有可能会覆盖掉你之前已经定义的名字。而且可读性极其的差。

model02.py,其程序如下

def test():
    print('hello,你好')
num=10
_age=10
name='zs'

调用程序:

  def test():
        print('demon07-test')
  from model02 import *        # *表示所有的
  test()     #覆盖掉了本模块中的test(),执行被导入的模块中的test()函数
  print(num)
    # print(_age)    #不能调用模块中的_变量

运行结果:

hello,你好
10

(1) all 属性
all = [变量1,变量2 …] 设置导入模块的功能。
model02.py,其程序如下

def test():
    print('hello,你好')
num=10
_age=10
name='zs'

all=[‘num’,’_age’,‘name’]
#这样在另外一个文件中用from my_module import *就这能导入列表中规定的两个名字

from model02 import *
# print(height)   #因为‘height’没有在'_all_'属性中,因此不能被使用
print(num)
test()

运行结果:

10
hello,你好

猜你喜欢

转载自blog.csdn.net/weixin_44239541/article/details/86098414