python的模块

模块的概念

一个包含python代码的文件就是一个模块。

模块的作用:
1.现在程序开发文件比较大,都放在一个文件中维护不方便,拆分成多个文件方便维护与管理
2.模块可以增加代码的重用率

创建模块

模块本身就是一个文件,所有py代码都可以在文件中直接书写。不过我们开发共用模块时,最好在模块中书写以下内容。

  1. 变量:模块中的属性值
  2. 函数:单独的功能
  3. 类:相似功能组合
  4. 模块测试代码:临时使用,被导入时不会执行

注意:
(1) 模块名称遵循标识符。
(2) 模块只有第一次被导入的时候执行,多次导入不会执行。

例如:model1.py是一个简单的模块

print('这是一个模块')

def hello():
	print("hello")

在其他的地方需要使用这个模块的方法如下:
不需要加.py)

import model

调动模块的结果是:

这是一个模块

使用model模块中的函数hello:

import model
mode.hello()

结果是:

这是一个模块
hello

模块导入的原理

原理介绍

  1. 模块导入会将要导入的文件执行一遍
  2. 导入模块的名称就是我们定义的脚本或包的名称
  3. 我们导入模块的过程总结就是:在指定的范围内搜索指定名称的python脚本或者包,将其运行,获取其中的方法

模块的导入方式

  1. import 模块名
  2. import 模块名 as 别名
  3. import 模块名1,模块名2,…(一行导入多个模块
  4. from…import…
  5. from…import…as 别名
  6. from…import 功能1,功能2,…
  7. from…import * (导入所有

1、import 模块名

import model

2、import 模块名 as 别名

import model as m
a.hello() 

3、一行导入多个模块

import model,time,sys

4、from…import…(局部导入方式

from model import hello
hello()

注意:如果当前文件中的变量或者函数名称和模块中的名称重复,会使用就近原则。

from model import hello

hello()  #  hello

def hello():
	print('123')

hello()  #  123

5、支持导入多行

from model import test1,test2,test2

test1()
test2()

6、from…import…as 别名
当导入的模块和当前模块中的名称相同的时候可以起别名进行区分。

from model import hello as ho
ho()

7、from 模块 import *
作用:直接导入模块中的所有方法和类和变量

from model import *

test1()
test2()
注意:如果model.py中的命名开头是_,如_age,则from model import *不能导入_age
from model import *
test1()
test2()
print(_age)  #  不能导入

__all __属性
格式如下:
__all __=[变量1,变量2…]
这样在另一个文件中用from model import *就能导入列表中规定的

例如:

def hello():
	print(’hello...')

name='lee'
_age=21
__all__=['hello','name','_age']

引用这个模块:

from model import *

hello()
print(name)
print(_age)  #  可以引用了

模块搜索路径

当你导入一个模块,Python解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
由sys模块的sys.path方法来规定

因为sys.path返回的数据类型是列表
1、列表可以修改、我们导入的范围也可以通过修改sys.path这个列表获得暂时的修改。例如通过 sys.path.append()添加目录,导入额外目录的模块。
2、列表是有序的,当搜索的过程当中,在第一个路径下搜索到了,就停止搜索。而且sys.path第一个路径是脚本的当前路径,所以禁止大家将自己的脚本命名成模块的名称。

因此需要注意的是:自己模块命名的时候不能和系统的模块名称相同。

pyc临时文件

为了提高加载模块的速度,python解释器会在__pycache__目录中下缓存每个模块编译后的版本,之后,再次被导入时,实际上导入的是这个.pyc的临时文件。
在这里插入图片描述

把模块当做脚本运行

我们可以通过模块的全局变量__name__来查看模块名:
当做脚本运行的时候:
__name __ 的值 等于’__main __’
当做模块导入的时候:
__name__的值等于模块名
作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
if __name __ == ‘__main __’:

示例:做脚本的时候测试代码会运行,而调用模块的时候测试代码不会运行

def sum_num(num1,num2):
	sum=num1+num2
	return sum

if __name__=='__main__':
	ret=sum_num(1,2)
	print(ret)
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值