day15 函数复习和模块基础

蒙特卡洛仿真

2023-12-05 19:28:40
函数复习
def func(*args,**kwargs):
pass

#func可以接受所有的参数
*形参:接受多余的位置实参 以元组的形式存储
**形参:接受多余的关键字参数 以字典的形式存储

函数对象的作用:
①引用 f1=func
②作为函数的返回值 return func
③作为函数的参数 f2(func)
④作为容器的元素lis=[func,123,f1,f2]

名称空间(命名空间)与作用域:
在Python中,万物皆对象。
命名空间是一个真实存在的对象,并不是一个虚拟的抽象的概念,在目前的Python实现中,命名空间是通过Python的字典(dict)来实现的。
每位开发者在写代码时,都要用到变量,通常在定义变量的同时给它赋一个值(这个值本质上是在一块内存区域中存储的),再使用变量。
在Python中,变量只是一个引用,指向的是这个被赋值的对象。由于变量是一个引用关系,也就存在一对一的映射,因此需要有一个地方保存这个对应关系。命名空间就是用来保存这种对应关系的。

总结一下,命名空间是一个特殊对象,它保存的是变量名(标识符)到对象(本质上是内存区域)的映射。

1)内置命名空间(Built-in),Python语言内置的命名空间,在写代码时,任何地方都可以访问。
例如,Python内置的数据类型(如bool,float,int,list,dict,set,str等类型)、内置函数(如sum,min,max,print等函数)和标准异常(如Exception、IOError、IndexError、NameError等异常)等等。

2)全局命名空间(Global),模块被加载时创建的命名空间,记录模块中导入的其它模块,定义的全局变量、函数和类

3)局部命名空间(Local),函数被调用时创建的命名空间,记录函数的参数、函数体中定义的所有变量。


查找顺序:从当前开始查找,如果当前是局部则是:局部》》全局》》内置

执行顺序:内置(python解释权启动的时候就生成了)》》全局(文件执行的时候生成)》》局部(函数被调用的时候)

作用域:全局名称空间和局部名称空间可能会存在同样的变量名,但这两个互不干扰。

闭包函数 装饰器:装饰器其实就是闭包函数的一个应用
def deco(func):
def wrapper(*args,**kwargs):
res=func()
return res
return wrapper

三层装饰器:给装饰器传参

可迭代对象:具有iter方法
迭代器对象:具有iter和next对象

生成器是自定义的迭代器,函数内部使用yield关键字 函数调用后会变成生成器

递归:一定要有结束语句!

匿名函数:lamda 参数:逻辑语句 匿名函数执行一次就失效了(没有函数名可用于重复调用)一般与max min 连用

*************************************************************************************************************************
模块

模块的形式:
①自定义模块
②内置模块,如time
③第三方库
④文件夹模块,python中叫包

time.py
要使用time模块里面的sleep()功能,有以下方式:
import time :
①打开time文件 ②将time文件放入python解释器 然后将time里的名字放入特定的time模块的名称空间③使用time.sleep()的时候会去time名称空间里面寻找对应的方法 time点出来
优点:time里面有的方法全拿到了
缺点:内存占用大

from time import sleep:
①打开time文件 ②将time文件放入python解释器 然后将time里名字放入特定的time模块的名称空间③把sleep单独拿出来放入“from time import time.py”的名称空间④直接使用sleep()就可以了

from time import *:导入全部


day1503开始

 

posted @   Junior_bond  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示