Python模块(一)

一. 基本概念

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

2.模块的作用:

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

3.模块的分类:

  • 内置模块builtins:在解析器的内部可以直接使用;

       

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

二. 模块的导入

2.1 import 语句

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

2.2 from ... import ...语句

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

  3. 示例:
            from math import pi
            from math import sin
            from math import factorial as fac

  • from import * 语句:
  1. 语法:
            from 模块名 import *
  2. 作用:
            将某模块的所有属性导入到当前的模块
  3.  示例:
            from math import *
            s = sin(pi/2)
            print(factorial(10))
     ------------>并不推荐采用此种方法,会污染当前环境的变量名空间;而且对引用的函数,属性并不清楚其来源于哪个模块

三. dir函数

  • 语法:dir([对象]) 返回一个字符串列表
  •  作用:
             1.如果没有参数调用,则返回当前作用域内所有变量的列表
             2.如果给定一个对象作为参数,则返回这个对象的所在变量(属性)列表: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):
    """函数my_fact的文档字符串"""
    print(n, "的阶乘为:", math.factorial(n))


def my_add(n):
    """函数my_fact的文档字符串"""
    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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值