0
点赞
收藏
分享

微信扫一扫

Python 模块(一)

菜菜捞捞 2021-09-29 阅读 2

一. 基本概念

1.1 什么是模块

模块是一个文件,模块文件名通常以 '.py' 结尾,由一系列数据,函数,类等组成。

1.2 模块的作用

  • 让一些相关的数据,函数,类等有逻辑地组织在一起,使逻辑结构更加清晰。
  • 模块中的变量,函数和类等可提供给其它模块或程序使用。

1.3 模块的分类

  • 内置模块 builtins:在解析器的内部可以直接使用;
  • 标准库模块:装 Python 时已安装且可以直接使用;
  • 第三方模块:需要自行安装后使用;
  • 自定义模块:用户自己编定的模块,可以作为其他人的第三方模块使用。

二. 模块的导入

2.1 import 语句

  • 语法:import 模块名1 [as 模块新名1], 模块名2 [as 模块新名2], ...
  • 示例:
>> import math
>> import sys, os
>> import copy as cp
  • 作用:将一个模块整体导入到当前模块中;
  • 属性用法:模块名.属性名
  • help() 可以查看模块的文档字符串:
# 相当于在当前模块,用math变量绑定一个对象
>> import math
>> help(math)

2.2 from ... import ... 语句

  • 语法:from 模块名 import 模块属性名1 [as 属性名新名1], 模块属性名2 [as 属性名新名2]...
  • 作用:将某个模块的一个或多个属性导入到当前模块的作用域。
>> from math import pi
>> from math import sin
>> from math import factorial as fac

2.3 from ... import * 语句

  • 语法:from 模块名 import *
  • 作用:将某模块的所有属性导入到当前模块的作用域。
>> from math import *
>> sin(pi/2)
1.0
>> print(factorial(10))
3628800

并不推荐采用此种方法,会污染当前环境的变量名空间;而且对引用的函数,属性并不清楚其来源于哪个模块。

三. dir函数

  • 语法:dir([对象]) 返回一个字符串列表。
  • 作用:如果没有参数调用,则返回当前作用域内所有变量的列表;如果给定一个对象作为参数,则返回这个对象所在的变量(属性)列表:dir(math)
1. 对于一个模块,返回这个模块的全部变量;
2. 对于一个类对象,返回类对象的所有变量,并递归基类对象的所有变量;
3. 对于其它对象,返回所有变量。

四. 自定义模块

文件组织形式如下:


提示:请先忽略 __init__.py 文件,在介绍包的概念时,再做讲解。

my_mode.py 代码:

"""示意自定义模块
   此模块中有2个函数:my_fac(n), my_sum(n)
   此模块中有2个变量:name1, name2
"""
import math
 
def my_fact(n):
    print(n, "的阶乘为:", math.factorial(n))
 
def my_add(n):
    my_sum = sum(range(n+1))
    print("1+2+...+" + str(n) + "=" + str(my_sum))
 
name1 = "Alex"
name2 = "Nore"
 
print("mymod 模块导入!")

run.py 代码:

import mymode.my_mode as my_mode
from mymode.my_mode import name1, name2
 
if __name__ == "__main__":
    print("run.py 的 __name__ 属性为: ", __name__)
    print("导入的 my_mode 模块的 __name__ 属性为:", my_mode.__name__)
    my_mode.my_fact(5)
    my_mode.my_add(5)
    print(name1, name2)

运行结果:


模块被首次导入后,所有语句都会被自上而下执行一遍,所有变量被定义,并绑定一个对象。

举报

相关推荐

0 条评论