py知识(每日更新) 6.18

万能传参

#当给函数传入的参数数目不定时,之前的穿饭餐方式解决不了问题
#万能参数//动态参数*args  将实参角度: 定义一个函数时* 所有位置参数聚合到一个元祖中.
#  **kwargs  函数定义是:**讲实参角度所有的关键字参数聚合成一个字典

* 的魔性用法:

def func(*args,**kwargs):
    print(args)
    print(kwatgs)

l1 = [1,2,3]
l2 = ["阿萨德","去去去"]

函数形参角度的形参顺序

位置参数>*args>默认参数>**kwargs

形参角度第4中传参方式:仅限关键字参数

从全局角度研究函数

#### 全局名称空间:

py文件运行时开辟的,存放的是执行的py文件(除去函数内部)的所有的变量与值(地址)的对应的关系,整个py文件结束之后,才会消失

#### 临时(局部)名称空间:

函数执行时,在内存中临时开辟的一个空间,存放的函数中的变量与值得对应关系,随着函数的执行完成而消失

内置名称空间:

input print 内置函数等

取值顺序和加载顺序

加载顺序:

? 内置名称空间先加载---->全局名称空间---->(当函数执行时)临时名称空间

取值顺序: (就近原则)

input = 666
print(input)
#从局部寻找input>>>>局部名称空间>>>>全局名称空间>>>>内置空间
#取值顺序单向,不可逆.

作用域

? 全局作用域:全局名称空间,内置名称空吗

? 局部作用域:局部名称空间

内置函数

print(globals())  #全局作用域所有的内容
print(locals())   #当前位置的变量与值得对应关系

高阶函数

原文地址:https://www.cnblogs.com/lyoko1996/p/11047842.html

时间: 2024-08-28 16:56:44

py知识(每日更新) 6.18的相关文章

py知识(每日更新) 7.30

sql语句的分类 sql语句的分类 # DDL : CREATE ALTER DROP # DML : SELECT INSERT DELETE UPDATE # DCL : GRANT REVOKE 常用sql语句 # 库 # create database 库名; # use 库名 # show tables; # 表 # create table 表名(字段名 类型(长度),...); # desc 表名; # show create table 表名; # alter table 表名

py知识(每日更新) 7.1

包的使用 第一类: ? 执行文件 通过import导入包以及包内的功能 ? 创建一个aaa的包,自行创建一个__init__py文件 ? 创建一个包会发生三件事儿: ? 1.将以XXX包内的__init__py文件加载到内存中 ? 2.创建一个以XXX命名的名称空间. ? 3.通过XXX . 的当时引用__init__的所有的名字. import aaa # 如何在当前文件中,引用aaa包的bbb包? 1.在执行文件写入 import aaa 2. aaa的__init__ 里面写 from a

py知识(每日更新) 7.15

C/S B/S架构 C:client 客户端 B:Browers 浏览器 S:Service 服务端 C/S 客户端与服务器之间的架构 :QQ 微信 APP等 都属于C/S架构 ? 优点:安全性高,个性化设置,功能全面,相应速度快 ? 缺点:开发成本高,维护成本高,面向客户固定 B/S架构属于C/S架构, 浏览器-服务器之间的架构 ? 优点:开发维护成本低,面向用户广泛 ? 缺点: 安全性相对低,响应速度相对较慢,个性化设置单一 互联网通讯的原理 ISO七层协议(五层) ? 1.物理层:一系列的

py知识(每日更新) 6.5

1整数 int 计算和比较 a.bit_length() #求十进制数转换为二进制时所占用的位数 2布尔值 bool True 真 False 假 数字转成布尔值: 0 False 非0 True 字符串转换成布尔值: 空字符串 "" False 非空 True 布尔值转换成数字 True = 1 False = 0 布尔值转换成字符串 True = str(True) False = str(False) 3字符串 作用:存储少量数据 索引(下标):从左向右 0, 1, 2, 3;;

py知识(每日更新) 6.13

文件操作初识 f = open("文件",mode="模式",encoding="编码") open() #调用操作系统打开文件 mode #对文件的操作方式 encoding #文件的编码 ? #不写indocing 默认为系统编码 Windows--gbk ? #linux&mac ----utf-8 f 文件句柄 ---- 操作文件的锅把 文件操作怎么用? 读 r rb r+ r+b r 读 r+ 读写 #后期开发中使用频率比较低

py知识(每日更新) 7.2

collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和OrderedDict等. 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要用来计数 4.OrderedDict: 有序字典 5.defaultdict:

py知识(每日更新) 7.16

socket套接字 五层协议:从传输层包括传输层以下,都是操作系统版主我们封装的各种head 套接字:他存在于传输层与应用层之间的抽象层 ? 1.避免你学习各层的接口以及协议的使用 socket已经封装好了所有的接口.直接使用这这些接口或者方法即可,提升开发效率. ? 2.在Python中socket就是一个模块.通过调用模块中已经实现的方法建立两个进程之间的通信. 单个客户端通讯 # client端 import socket # 1. 创建socket对象 phone = socket.so

py知识(每日更新) 7.12

反射 通过字符串去操作一个对象 字符串: 字符串类型 对象: 实例,类,当前文件(模块),其他模块 hasattr() # getattr() # setattr() # 增 delattr() # 删 函数VS方法 1.通过函数名可以大致判断 print(func) print(obj.func) 2.通过模块types模块去验证 from types import FunctionType from types import MethodType print(isinstance(func,

py知识(每日更新) 7.25

GIL锁. GIL锁: 全局解释器锁. 就是一个把互斥锁,将并发变成串行,同一时刻只能有一个线程使用共享资源,牺牲效率,保证数据安全. 带来的问题1: ? 单进程的多线程不能利用多核. 诟病之一. ? 多进程的多线程可以利用多核. 带来的问题2: ? 感觉上不能并发的执行问题. 讨论: 单核处理IO阻塞的多线程,与多核处理IO阻塞的多线程效率差不多. # 多核的前提下: 如果任务Io密集型: 多线程并发.如果任务计算密集型: 多进程并发. GIL锁与互斥锁的关系. # 1. GIL 自动上锁解锁