找回密码
 立即注册
首页 业界区 安全 函数-参数+作用域

函数-参数+作用域

澹台吉星 2025-9-30 17:02:34
参数:
  定义函数时(参数常见的使用):1.  def  i(num)  2.  def  i(num1,num2 = 自己定义)  3.def  i(*arg,*kwarg)
  调用函数时  (参数的传入):位置参数>关键字参数
    
  1. 不定长参数:
  2.     *args:调用函数时使用位置传参,得到元组
  3.     **kwaaargs:调用函数时使用关键字传参,得到字典
  4. *args:
  5.         def funk(*arg):
  6.             print(arg)
  7.         funk(1,2,3)
  8.         funk(*(1,2,3))  #*可以理解为对列表进行拆散
  9.         >>>(1, 2, 3)
  10.            (1, 2, 3)
  11. **kwargs:
  12.           def funk(**kwargs):
  13.             print(kwargs)
  14.           funk(a = 1,b =2)
  15.           funk(**{'a':1,'b':2})
  16.           >>>{'a': 1, 'b': 2}
  17.              {'a': 1, 'b': 2}
  18. def i (*args,**kwargs):
  19.     print(args,kwargs)
  20. i (1,[1,2],*[1,2,3],a = 1,**{"b":2})
  21. >>>(1,[1,2],(1,2,3)){"a":1,"b":2}
  22.             
  23.             
  24.             
  25.             
  26.             
复制代码
作用域:
    全局作用域和一个函数为一个作用域  --> 全局变量,局部变量         规范:全局变量用大写
    定义的函数中变量的查找:自己->父级->父级->....父级->全局    :即函数调用时可读取全局变量,修改全局变量(可变类型,如对列表添加元素)但此处的修改不能是对全局变量重新进行赋值
    改变全局变量关键字:global
    改变父级变量关键字:nonlocal
      
  1. name = "gh"
  2. def i():
  3.     name = "g"
  4.     def e():
  5.         global name #声明这层使用的全局变量name
  6.         name = "guohan"  #全局变量重新赋值
  7.         print(name) #guohan
  8.     e()
  9.     print(name) #g,其在第一层函数下
  10. i()
  11. print(name) #输出全局变量name(i()被调用则全局name被重新赋值
复制代码
    

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册