Python(三十三)python模块化编程

简介: 1 :模块的定义模块:用来从逻辑上组织Python代码(变量,函数、类,逻辑:实现一个功能),本质就是.py结尾的Python文件(文件名:test.py,对应的模块名,test)。 2 :模块的引用模块的引用大概有三种方式:python复制代码import module_test, module_test1 # 调用方法的时候,需要module_test. form moudule_test import * # * 表示所有的方法(不建议使用,这个就相当于导入了程序。) 容易造成覆盖,出现问题。form module_test import module_ajun

1:模块的定义

模块:用来从逻辑上组织Python代码(变量,函数、类,逻辑:实现一个功能),本质就是.py结尾的Python文件(文件名:test.py,对应的模块名,test)。

 2:模块的引用

模块的引用大概有三种方式:

python

复制代码

import module_test, module_test1 # 调用方法的时候,需要module_test.  
form moudule_test import *  # * 表示所有的方法(不建议使用,这个就相当于导入了程序。)  容易造成覆盖,出现问题。
form module_test import module_ajun  as module_ajun_test # 作为一个别名来使用

 3:自定义模块

我这里直接放代码了,定义了成员变量,函数,类。

ruby

复制代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2021/12/23 13:57
# @Author  : camellia
# @Email   : 805795955@qq.com
# @File    : modules.py
# @Software: PyCharm
name = "Python笔记"
add = "http://guanchao.site"
# print(name, add)
def say():
    print("欢迎访问时间里的博客 https://guanchao.site")
class CLanguage:
    def __init__(self, name, add):
        self.name = name
        self.add = add
    def say(self):
        print(self.name, self.add)
# 加法
def plus(a, b):
    return a + b
# 加法
def reduce(a, b):
    return a - b
# 除法
def ride(a, b):
    if b == 0:
        return "被除数不能是0"
    return a - b

 4:import原理

我的主业是做PHP的,PHP中没有inport 关键字

在做前端的时候,javascript中是有import关键字的,用于导入模块,以及模块中的方法。

Python中的import关键字的原理是:路径 搜索和搜索路径

(1):import modules as mod相当于把modules 的所有代码解释一遍,全部传递给modules 并且起了个别名 mod 调用modules的变量和方法。

引用模块发送三件事:

  1. 把要引入模块加载到内存
  2. 在内存中创建一个以引入模块命名的名称空间
  3. 通过引入模块的名字,以.的方式引入此模块的(变量,函数,类名)

注意: 通过import引入的模块,引入模块中的变量不会受到,当前模块相同名字的变量的影响 通过import 引入的模块, 他有自己的独立空间,与当前执行的文件没有关系.

python

复制代码

# 导入自定义的modules模块
import modules as mod
# 调用成员变量
print(mod.name)
# 调用方法
mod.say()
# 调用类
test = mod.CLanguage('时间里的','https://l.guanhao.site')
# 调用类下的方法
test.say()

输出:

arduino

复制代码

Python笔记
欢迎访问时间里的博客 https://guanchao.site
时间里的 https://l.guanhao.site

 (2):from modules import name, say, CLanguage 相当于只调用了name变量,在当前模块,就不需要加前缀了。

优点: 使用起来方便 (更容易快速找到指定的要使用的 功能 )

缺点: 容易与当前执行文件产生覆盖效果(如果当前执行的文件中具有和导入的模块 相同名字的变量就会被覆盖.谁先加载,谁先被覆盖)

注意: (极端情况,一般没人这么折腾自己)

需求: 在引入一个模块的之后,去执行这个模块的中修改模块的某个变量的值. 不会对当前执行文件造成影响.

当前执行文件使用的是模块中同一个函数.(只有模块中的变量会被拷贝当前执行文件, 模块中的函数不会被拷贝)

引用模块中的函数,如果此模块用到一些变量,这些变量还是从此模块中寻找,不会改变当前执行文件的变量

perl

复制代码

# 导入自定义的modules模块
from modules import name, say, CLanguage
# 调用name
print(name)
# 调用say 方法
say()
# 调用类 Clanguage
cl = CLanguage('时间里的', 'https://l.guanhao.site')
cl.say()

输出:

arduino

复制代码

Python笔记
欢迎访问时间里的博客 https://guanchao.site
时间里的 https://l.guanhao.site

(3):导入优化

尽量多使用from modules import name, say, CLanguage需要什么就导入什么,不要一次性全部导入

切记不要使用 from xxx模块 import * ,这样会将模块中的所有代码都引入到程序中。

有好的建议,请在下方输入你的评论。

目录
相关文章
|
1天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
13 4
|
1天前
|
设计模式 程序员 数据处理
编程之旅:探索Python中的装饰器
【10月更文挑战第34天】在编程的海洋中,Python这艘航船以其简洁优雅著称。其中,装饰器作为一项高级特性,如同船上的风帆,让代码更加灵活和强大。本文将带你领略装饰器的奥秘,从基础概念到实际应用,一起感受编程之美。
|
3天前
|
存储 人工智能 数据挖掘
从零起步,揭秘Python编程如何带你从新手村迈向高手殿堂
【10月更文挑战第32天】Python,诞生于1991年的高级编程语言,以其简洁明了的语法成为众多程序员的入门首选。从基础的变量类型、控制流到列表、字典等数据结构,再到函数定义与调用及面向对象编程,Python提供了丰富的功能和强大的库支持,适用于Web开发、数据分析、人工智能等多个领域。学习Python不仅是掌握一门语言,更是加入一个充满活力的技术社区,开启探索未知世界的旅程。
13 5
|
1天前
|
机器学习/深度学习 JSON API
Python编程实战:构建一个简单的天气预报应用
Python编程实战:构建一个简单的天气预报应用
10 1
|
1天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
15 2
|
4天前
|
人工智能 数据挖掘 开发者
探索Python编程:从基础到进阶
【10月更文挑战第32天】本文旨在通过浅显易懂的语言,带领读者从零开始学习Python编程。我们将一起探索Python的基础语法,了解如何编写简单的程序,并逐步深入到更复杂的编程概念。文章将通过实际的代码示例,帮助读者加深理解,并在结尾处提供练习题以巩固所学知识。无论你是编程新手还是希望提升编程技能的开发者,这篇文章都将为你的学习之旅提供宝贵的指导和启发。
|
2天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
3天前
|
机器学习/深度学习 人工智能 数据可视化
探索Python编程:从基础到高级
【10月更文挑战第33天】本文是一篇深入浅出的Python编程入门教程,适合初学者阅读。文章首先介绍了Python的基本概念和语法,然后通过实例讲解了如何使用Python进行数据处理和分析,最后介绍了一些高级特性和库,帮助读者更好地掌握Python编程。无论你是编程新手还是有一定经验的开发者,这篇文章都能给你带来新的启示和收获。
|
4天前
|
存储 人工智能 数据挖掘
探索Python编程的奥秘
【10月更文挑战第32天】在这篇文章中,我们将一起踏上一段奇妙的Python编程之旅。从基础语法到高级特性,我们将通过一系列简单而直观的代码示例,逐步揭开Python语言背后的神秘面纱。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。让我们一起开始这段旅程吧!
|
4天前
|
存储 机器学习/深度学习 搜索推荐
Python编程入门:从零开始构建你的第一个程序
【10月更文挑战第32天】本文旨在通过浅显易懂的方式引导编程新手进入Python的世界。我们将一起探索Python的基础语法,并通过实例学习如何构建一个简单的程序。文章将不直接展示代码,而是鼓励读者在阅读过程中自行尝试编写,以加深理解和记忆。无论你是编程初学者还是希望巩固基础知识的开发者,这篇文章都将是你的良师益友。让我们开始吧!
下一篇
无影云桌面