【Python】模块

Python 模块

  • 模块化:将一个完整的程序分解成一个个小模块
  • 优点:方便开发和维护、提高代码的重复利用率
  • 在 python 中一个文件就是一个模块
# 新建一个文件 test2.py
print('我是一个模块')

模块的使用

引入模块

  • 文件导入模块后,就会执行模块里面的非函数内容

  • 语法 :import 模块名 ( python 文件名 )

# 新建一个文件 test2.py
print('我是一个模块')
# 在其他文件中
import test2
# ---------- 输出 ----------
# 我是一个模块
  • 语法2 :import 模块名 as 模块别名
  • 引入后就可以用模块别名调用模块
# 在其他文件中
import test2 as module1
# ---------- 输出 ----------
# 我是一个模块
  • 不管输入多少个 import,模块最终都只导入一次
  • 模块自己输出 __ name __ ,返回的是 __ main __ 。这时模块自己就是主模块。
  • 可以通过在模块内部输出 __ name __ ,在其他模块中获取该模块的文件名 ( 模块名 )
# 在模块 test2.py 中
print(__name__)
# ---------- 输出 ----------
# __main__
# 在其他文件中
import test2
import test2
# ---------- 输出 ----------
# test2

调用模块

  • 调用变量:模块名 . 变量名
  • 调用函数:模块名 . 函数名 ( )
  • 调用类:模块名 . 类名 ( )
# 在模块 test2.py 中
var = 5

def fun1():
    print('函数fun1已被执行', end=';')
    
class Person():
    def __init__(self):
        self.name = 'superman'
# 在其他文件中
import test2 as module
print(module.var, end=';')  # 调用变量
module.fun1()                # 调用函数
man = module.Person()        # 调用类
print(man.name)
# ---------- 输出 ----------
# 5;函数fun1已被执行;superman

from … import … 语句

  • 语法1 :from 模块名 import 变量, 函数名, 类名…
  • 用于引入模块的部分内容
  • 此时调用可以直接用变量名、函数名()、类名()
# 在模块 test2.py 中
def fun1():
    print('函数fun1已被执行', end=';')
from test2 import fun1
fun1()
# ---------- 输出 ----------
# 函数fun1已被执行;
  • 语法2 :from 模块名 import 内容 as 别名
from test2 import fun1 as fff
fff()
# ---------- 输出 ----------
# 函数fun1已被执行;
  • 语法3 :from 模块名 import *****
  • 用于导入模块的全部内容,开销较大,一般不这样使用
from test2 import *
fun1()
# ---------- 输出 ----------
# 函数fun1已被执行;
  • 主模块中如果有与其他模块的函数同名的函数,写在后面的同名函数会覆盖前面的同名函数
# 在模块 test2.py 中
def fun1():
    print('模块里的函数fun1已被执行', end=';')
  • 先导入,后写:主模块的生效
from test2 import *

def fun1():
    print('执行函数')

fun1()
# ---------- 输出 ----------
# 执行函数
  • 先写,后导入:其他模块的生效
def fun1():
    print('执行函数')

from test2 import *

fun1()
# ---------- 输出 ----------
# 模块里的函数fun1已被执行;
  • 这个时候就可以通过起别名,来解决同名函数的覆盖问题

main 函数

  • 语法 :if __ name __ == “__ main __” : code block
  • 使一些语句只在主模块内执行
# 在模块 test2.py 中
if __name__ == "__main__":
    print('这里的语句只会在主模块内执行')
    
print('这里的语句会在其他模块里执行')
# ---------- 输出 ----------
# 这里的语句只会在主模块内执行
# 这里的语句会在其他模块里执行
import test2
# ---------- 输出 ----------
# 这里的语句会在其他模块里执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JS.Huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值