cccyyys 发表于 2021-7-2 10:59

【笔记】模块的定义、导入及使用

模块的定义
概念:只要以.py为后缀的文件,都叫模块。模块中可以存放变量、函数、class类对象以及可执行代码。
使用模块便于管理,降低复杂度,易维护。
模块的导入及使用
导入方法:1、直接使用import导入      import函数名1,函数名2.....
                  使用方法:模块名.函数名(参数)/变量/类
                  2、导入模块中的相关的数据   from 函数名 import函数名/类名/变量
                  使用方法:可直接使用
#使用import导入模块
#import random
#s =random.randint(1,6)
#print(s)
#使用form 模块名 import 相关数据
from random import randint
print(randint(1,6))
以上为导入及使用模块的两种方法,均可以正常运行。
自定义模块的定义及使用
'''自定义模块,实现加减乘除运算'''
def add(a,b):
    return a+b
def sub(a,b):
    return a-b
def mul(a,b):
    return a*b
def div(a,b):
    return a/b
a = 10
b = 2
print("和为:%g"%add(a,b))
print("差为:%g"%sub(a,b))
print("积为:%g"%mul(a,b))
print("商为:%g"%div(a,b))
运行结果为:和为:12
差为:8
积为:20
商为:5
以上就是自定义的一个模块,且测试成功,下面我们就可以在导入了,新建一个Python File文件,导入即可。
#导入自定义模块
import MyMath
a = 10
b = 20
s = MyMath.add(a,b)
print(s)
运行结果为:和为:12
差为:8
积为:20
商为:5
30
这时我们会发现运行时多了4行数据,仔细对比,发现这四行数据就是运行模块中的测试语句得来的,这是因为Python中import模块后会执行一遍模块中的代码,导致出现这种结果。为了避免这种情况,我们可以利用__name__内置类属性,__name__是python的一个内置类属性,它天生就存在于一个 python 程序中,代表对应程序名称,他在模块中打印时会打印出__main__,但是当被引用时就会打印出模块名称。我们可以利用这个内置类属性进行判断,如果被引用就不执行测试代码。
def add(a,b):
    return a+b
def sub(a,b):
    return a-b
def mul(a,b):
    return a*b
def div(a,b):
    return a/b
if __name__ == '__main__':
    a = 10
    b = 2
    print("和为:%g"%add(a,b))
    print("差为:%g"%sub(a,b))
    print("积为:%g"%mul(a,b))
    print("商为:%g"%div(a,b))
我们在测试语句前加了一个if判断,如果被引用后,__name__类属性会变成模块名,就不会执行测试语句。
页: [1]
查看完整版本: 【笔记】模块的定义、导入及使用