Python核心语法-Python自定义模块、Python包

一、python 模块

Python模块(module):一个Python文件(.py)就是一个模块,模块是Python程序的基本组织单位。在模块中可以定义变量、函数、类,以及可执行的代码。

1.导入模块

导入模块 代码;

-import 模块名

-import 模块名 as 别名

-from 模块名 import 功能名

-from 模块名 import 功能名 as 别名

-from 模块名 import *

python 复制代码
# 导入模块

import random as rd

for i in range(100):
    print(rd.randint(1, 100))

总结:

1.什么是模块?有什么用?

模块:就是一个Python文件(.py),其中就包含了变量、函数、类,以及可执行的代码。

作用:提高代码复用性,降低开发门槛。

2.导入模块的常用语法?

  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名
  • from 模块名 import *

二、自定义模块

当开发一些复杂的项目,为了让项目结构更清晰,更便于项目的为负管理 及 代码的复用,可能会把一个项目拆分为若干个模块。

每一个Python文件都可以作为一个模块,模块的名字就是文件的名字。

代码:

python 复制代码
#常量
PI = 3.1415926
NAME = "NAME常量"

# 函数

def log_separator1():
    print("- " *30) #重复输出

def log_separator2():
    print("+ " *30)

def log_separator3():
    print("# " *30)

def log_separator4():
    print("* " *30)

#测试函数
# __name__  :python 中内置变量,表示的当前模块的名字(直接运行当前模块, 值为  __main__,当该模块被导入时,__name__ 的值就是模块名字,my_fun)
# __main__  :当前模块的名字
#print(__name__)
if __name__ == "__main__":
    log_separator1()
#log_separator1()

1)name 变量用法

python 复制代码
if __name__ == "__main__":
    log_separator1()

2)all 用法
all 是一个模块级别的特殊变量,用于指定 from 模块名 import * 是会导入那些功能(*通配了那些功能)。

python 复制代码
# 指定 from ... import * 导入的是那些功能
#__all__ = ["log_separator1",  "log_separator3", "PI"]
__all__ = ["log_separator1",  "log_separator3", "PI"]
#常量
PI = 3.1415926
NAME = "NAME常量"

# 函数

def log_separator1():
    print("- " *30) #重复输出

def log_separator2():
    print("+ " *30)

def log_separator3():
    print("# " *30)

def log_separator4():
    print("* " *30)

#测试函数
# __name__  :python 中内置变量,表示的当前模块的名字(直接运行当前模块, 值为  __main__,当该模块被导入时,__main__ 的值就是模块名字,my_fun)
if __name__ == "__main__":
    log_separator1()
#from my_fun improt *   __all__ 

总结:

name 与__all__ 2个特殊变量 的作用是什么?

  • name 是Python中非常重要的内置变量,表示的是当前模块的名称。
    当模块直接运行时:__name__的值为"main "。
    当模块被导入时:__name__等于模块的文件名(不含.py后缀)。
  • all:控制import * 导入哪些功能。

三、python软件包package

包:本质就是一个文件夹,该文件夹中可以包含若干python模块(.py文件),文件夹下还包含了一个__init__.py。

作用:模块文件较多时,用来管理多个模块。(包的本质也是一个模块)。

包的导入方式:

包下的模块,导入模块:

示例代码:

21.packge.py

python 复制代码
# 1. 导入模块
# import utils.my_fun
#
# utils.my_fun.log_separator1()
# utils.my_fun.log_separator1()


# 2.导入模块

# from utils import my_fun
# my_fun.log_separator1()

# 3.导入模块 #注意 需要在 __init__.py 文件中添加 __all__ = ["log_separator1"]
# from utils import *
# my_fun.log_separator1()
# my_fun.log_separator2()
#
# print(my_var.PI)
# print(my_var.NAME)


# 4. 导入模块中的功能  ;绝对路径 :从项目根目录查找, 相对路径: 从当前文件所在目录开始查找 ,写法

from utils.my_fun import log_separator1,log_separator3

log_separator1()
log_separator3()

init.py

python 复制代码
# 描述包信息
__version__ = '1.0.0'
__author__ = 'Kong'

__all__ = ["my_fun","my_var"]

my_fun.py

python 复制代码
def log_separator1():
    print("- " *30) #重复输出

def log_separator2():
    print("+ " *30)

def log_separator3():
    print("# " *30)

def log_separator4():
    print("* " *30)

my_var.py

python 复制代码
#常量
PI = 3.1415926
NAME = "NAME常量"

总结:

1.什么是包,有什么作用。

包就是一个文件夹,里面可以存储很多Python模块(py文件),通过包可以对模块进行归类。

2.init .py文件的作用。

标识这是一个包,而不是普通的文件夹。

控制在improt * 时导入的模块列表(__all__变量)

3.导入包的方式。

import 包名.模块名

from 包名 import 模块名

from 包名 import *

from 包名.模块名 import *功能名

from 包名.模块名 import *

相关推荐
醇氧7 小时前
【Linux】Java 服务生产级部署指南:实现常驻后台、开机自启与系统服务化管理
java·开发语言
凡人叶枫8 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
不吃土豆的马铃薯8 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
数据法师8 小时前
QuickSay :基于 Qt 的轻量级快捷短语管理工具
开发语言·qt
caimouse8 小时前
Reactos 第1章 概述
c语言·开发语言·架构
.千余8 小时前
【C++】C++继承入门(下):友元、静态成员与菱形继承的底层逻辑
开发语言·c++·笔记·学习·其他
财经资讯数据_灵砚智能8 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月10日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
namexingyun9 小时前
拆解Fable 5三重安全护栏:模型路由、蒸馏防护与生物安全分类器的技术原理 - 微元算力(weytoken)
java·人工智能·python·安全·架构·ai编程
小短腿的代码世界9 小时前
行情快照与增量更新引擎:Qt在高频交易数据分发中的核心架构——你的行情推送为什么延迟了500ms?
开发语言·qt·架构
初中就开始混世的大魔王9 小时前
6 Fast DDS-传输层
开发语言·c++·中间件·信息与通信