python10-动态传参

动态传参

def chi(*food): #可以传入任意的位置参数,*是任意,food就是形参的名字

    print(“我要吃”,food)  #动态参数接收到的是tuple类型的数据

chi(“盖浇饭”,“辣条”,“面条”)#打印的结果是我要吃(‘盖浇饭’,“辣条”,“面条”)

顺序:先写位置参数,再写动态参数*,最后是默认值参数,如果想修改默认值参数,需要用关键字参数来修改,例如d=“qwq”

def func(a,b,c,*args,d=5):

    print(a,b,c,d,args)

func(1,2,3,4,5,6,7)   # 1 2 3 5 (4,5,6,7)

func(1,2,3,4,5,6,7,d="qwq”) # 1 2 3 qwq (4,5,6,7)

#写函数,给函数传递任意个整数,返回这些数的和。

def  he(*n):

   sum = 0

   for el in n:

       sum += el

   return sum

print(he(1,2,3,4,5))

#动态接收关键字参数

* 位置参数

**关键字参数   #:其中有两个*,一个*是key 一个*是value

def func(**food):  # **food是动态接收关键字参数

   print(food)  #接收到的是字典

func(goodfood=“盖浇饭”,badfood=“辣条”)  #{“goodfood”:“盖浇饭”,“badfood”:“辣条”}

 

终极顺序:位置参数>*args>默认值参数>**kwargs

 

命名空间

在python解释器开始执行之后,就会在内存中开辟一个空间,每当遇到一个变量的时候,就把变量名和值之间的关系记录下来,但是当遇到函数定义的时候,解释器只是把函数名读入内存,表示这个函数存在了,至于函数内部的变量和逻辑,解释器是不关心的,也就是说一开始的时候函数只是加载进来,仅此而已,只有当函数被调用和访问的时候,解释器才会根据函数内部声明的变量来进行开辟变量的内部空间,随着函数执行完毕,这些函数内部变量占用的空间也会随着函数执行完毕而被清空。

内置命名空间:存放python解释器为我们提供的名字,list,tuple,str,int这些都是内置命名空间。

全局命名空间:我们直接在py文件中,函数外声明的变量都属于全局命名空间。

局部命名空间:在函数中声明的变量会放在局部命名空间

加载顺序:内置命名空间,全局命名空间,局部命名空间(函数被执行的时候)

取值顺序:局部命名空间,全局命名空间,内置命名空间

a = 10

def func():

   a = 20

   print(a)

func()  #打印的结果是a=20,就近原则,如果局部变量中a=20取消,那么a=10

 

作用域:作用域就是作用范围,按照生效范围来看 分为全局作用域和局部作用域

全局作用域:包含内置命名空间和全局命名空间。在整个文件得任何位置都可以使用(遵循从上到下逐行执行)。

局部作用域:在函数内部可以使用。

作用域命名空间

全局作用域:全局命名空间+内置命名空间

局部作用域:局部命名空间

我们可以通过globals()函数来查看全局作用域中的内容,也可以通过locals()来查看局部作用域中的变量和函数信息。

函数的嵌套

1.只要遇见了(),就是函数的调用,如果没有()就不是函数的调用。

定义python函数时,如果没有return语句,则默认返回空值NONE

def chi():

    print(“我要吃”)

print(chi)   #结果是0x000012 内存地址

print(chi()) #结果是 我要吃  None

 

global

a = 10

def func():

    global a   #把外面全局中的a引入,表示a不在是局部变量,而变成了全局变量

    a = a + 10 #全局中的a变成20

    print(a)

func()

print(a)   #20

nonlocal  找局部作用域中外层 离他最近的那个变量引入进来

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值