说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
对于我们日常经常用到的功能,可以编写一个模块在本地供经常调用,可以减少我们重复的工作。Python模块是包含Python定义和语句的文件。文件名就是模块名加上.py后缀。模块可以包含可执行的语句以及函数定义。这些语句可以用来初始化模块,它们只在模块第一次被导入时执行。
为什么使用模块?
模块可以包含:
if __name__ == "__main__"
这个条件语句允许你的代码以不同的方式运行,取决于它是被导入还是直接运行,见页尾的相关阅读。
创建好的模块的建议:
__all__
列表来控制 from module import *
的行为一般目录结构设计如下:
demo.py
__init__.py
module_x.py
package
├── __init__.py
├── module_a.py
└── module_b.py
以上,module_x.py
是一个模块,放在业务程序 demo.py
的同目录下,package
是一个比较复杂的包,里边存有多个模块。每个 module 文件里可以写相应的函数、变量、类等逻辑代码供业务程序来调用。
__init__.py
为一个内容为空的文件,当然里边也可编写导入时自动执行的逻辑代码。
在demo.py
中调用时:
from package.module_a import m1
from package import module_b
import module_x
我们写一个加减法的简单模块,供业务程度调用,业务代码文件和模块文件在用一个目录里:
demo.py # 业务逻辑文件
cal.py # 模块文件
cal.py
代码:
# 加法
def add(x, y):
return x+y
# 减法
def sub(x, y):
return x-y
demo.py
中的调用代码:
import cal
from cal import sub
# 加
cal.add(1, 1)
# 减
sub(2, 1)
以上是一个非常简单的例子,更加复杂的可以模块中用我们之前学到的「类」来实现。
一个关于球体的模块。
"""
This is a sample module to demonstrate
module creation in Python.
It contains a function, a constant, and
a class related to geometrical calculations.
"""
import math
__all__ = ['circle_area', 'PI', 'Sphere']
PI = 3.14159
def circle_area(radius):
"""Calculate the area of a circle."""
return PI * radius ** 2
class Sphere:
"""A class representing a sphere."""
def __init__(self, radius):
self.radius = radius
def volume(self):
"""Calculate the volume of the sphere. V=4/3 πr*3"""
return (4/3) * PI * self.radius ** 3
if __name__ == "__main__":
print(f"Circle area (r=5): {circle_area(5)}")
s = Sphere(3)
print(f"Sphere volume (r=3): {s.volume()}")
if __name__ == '__mian__'
的意义,详见。
经常用别人的库,也可以尝试编写一个自己的库,然后发布,供大家来使用。不过,编写库涉及到工程项目,需要更高的编程技能,教程后续可能会单独进行介绍。
更新时间:2024-06-26 09:24:56 标签:python 模块