iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python动态参数/命名空间/函数嵌套
  • 409
分享到

Python动态参数/命名空间/函数嵌套

嵌套函数参数 2023-01-31 00:01:27 409人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1. 函数的动态参数   1.1 *args 位置参数动态传参 def chi(*food): print("我要吃", food) chi("大米饭", "小米饭") 结果:我要吃 ('大米饭', '小米饭')

1. 函数的动态参数
  1.1 *args 位置参数动态传参

def chi(*food):
    print("我要吃", food)
chi("大米饭", "小米饭")
结果:我要吃 ('大米饭', '小米饭') # 多个参数传递进去. 收到的内容是元组tuple

  1.2 **kwargs 关键字参数动态传参

def func(**kwargs):
    print(kwargs)
func(a=1, b=2, c=3)
func(a=1, b=2)
结果:
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2}

  顺序:位置参数, *args, 默认值, **kwargs

  def func(*args, **kwargs):
    pass

  形参的位置*,**: 聚合

  实参的位置*,**: 打散

def fun(*args):
    print(args)
lst = [1, 4, 7]
fun(lst[0], lst[1], lst[2])
fun(*lst) # 可以使用*把一个列表按顺序打散
s = "小短腿鲁班七号"
fun(*s) # 字符串也可以打散, (可迭代对象)

2. 命名空间

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

  2.1 内置名称空间 -- 存放Python解释器为我们提供的名字, list, tuple, str, int 等这些都是内置命名空间

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

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

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

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

 

  作用域:

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

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

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

    1. 全局作用域: 内置+全局
    2. 局部作用域: 局部(函数被调用)
    3. globals() 查看全局中的内容
    4. locals() 查看当前作用域中的内容

a = 10
def func():
    a = 40
    b = 20
def abc():
    print("哈哈")
    print(a, b) # 这里使用的是局部作用域
    print(globals()) # 打印全局作用域中的内容
    print(locals()) # 打印局部作用域中的内容
func()

3. 函数嵌套
  函数可以互相的嵌套

def fun1():
    print(111)
def fun2():
    print(222)
    fun1()
fun2()
print(111)

# 函数的嵌套
def fun2():
    print(222)
    def fun3():
        print(666)
    print(444)
    fun3()
    print(888)
print(33)
fun2()
print(555)    

4. global和nonlocal关键
  global: 在局部访问全局中的内容

a = 100
def func():
    global a # 加了个global表示不再局部创建这个变量了. 而是直接使用全局的a
    a = 28
    print(a)
func()
print(a)

  nonlocal: 在局部寻找外层函数中离他最近的那个变量

 

a = 10
def func1():
    a = 20
    def func2():
    nonlocal a
    a = 30
    print(a)
    func2()
    print(a)
func1()
# 结果:
# 加了nonlocal
# 30
# 30
# 不加nonlocal
# 30
# 20

 

--结束END--

本文标题: Python动态参数/命名空间/函数嵌套

本文链接: https://www.lsjlt.com/news/182496.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python动态参数/命名空间/函数嵌套
    1. 函数的动态参数   1.1 *args 位置参数动态传参 def chi(*food): print("我要吃", food) chi("大米饭", "小米饭") 结果:我要吃 ('大米饭', '小米饭') ...
    99+
    2023-01-31
    嵌套 函数 参数
  • 怎么理解Python动态参数、命名空间、函数嵌套、global和nonlocal
    本篇内容主要讲解“怎么理解Python动态参数、命名空间、函数嵌套、global和nonlocal”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Python动态参数、命名空间、函数嵌套、...
    99+
    2023-06-02
  • python函数参数,名称空间,以及函数嵌套
    目录一. 函数参数–动态传参1.1动态位置接受参数,在参数位置编写*表⽰示接收任意内容1.2 动态接收关键字参数1.3无敌传参 * args, * * kwargs 一起...
    99+
    2024-04-02
  • golang函数嵌套函数参数传递
    go函数可以嵌套,内嵌函数可以访问外部函数变量。参数传递方式包括:按值传递(复制值)、按引用传递(传递地址)。嵌套函数和参数传递在实际应用中,如计算数组平均值,通过按引用传递来修改外部变...
    99+
    2024-04-22
    函数参数传递 函数嵌套 golang
  • python-函数的对象、函数嵌套、名称
    目录 函数的对象 函数对象的四大功能 引用 当做参数传给一个函数 可以当做函数的返回值 可以当做容器...
    99+
    2023-01-31
    函数 嵌套 对象
  • C#怎么访问嵌套的命名空间成员
    这篇文章主要介绍了C#怎么访问嵌套的命名空间成员的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#怎么访问嵌套的命名空间成员文章都会有所收获,下面我们一起来看看吧。嵌套命名空间命名空间可以被嵌套,即您可以在一个...
    99+
    2023-06-17
  • python中的函数嵌套和嵌套调用
    目录函数嵌套和嵌套调用函数的嵌套函数的嵌套调用函数中定义函数在函数内部定义的函数要在函数内部调用函数内的函数可以引用外部变量试图对外部变量进行修改函数怎么修改外部变量的值的说明函数嵌...
    99+
    2024-04-02
  • Python函数的嵌套详解
    Python允许在函数中定义函数,这通常被称为嵌套函数或者内部函数。 def speak(text): def my_lower(t): return t.l...
    99+
    2024-04-02
  • C++命名空间和缺省参数介绍
    一、命名空间 为什么引入命名空间 在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行...
    99+
    2024-04-02
  • python嵌套函数怎么调用
    在python中调用嵌套函数的方法首先,定义一个outer函数;def outer()a = 1 外部函数定义好后,在函数中嵌套一个内部函数;def outer():a = 1 #外部函数def inner():print(a) #内部函数...
    99+
    2024-04-02
  • python中什么是嵌套函数
    在python中函数的内部还定义了另一个函数,这个函数就叫嵌套函数,外部的为外函数,内部的为内函数。例:带参数的嵌套函数def outer_func(x):def inner_func(y):print(x+y)return inner_f...
    99+
    2024-04-02
  • Python函数命名空间和作用域是什么
    这篇文章主要介绍Python函数命名空间和作用域是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.Local作用域a = 100def func5():  &n...
    99+
    2023-06-29
  • python函数嵌套如何执行
    在python中执行嵌套函数的方法执行不带参数的嵌套函数def outer_func():x=1def inner_func():result=x+1print(result)return inner_funcf1=outer_func()...
    99+
    2024-04-02
  • Python函数命名空间和作用域(Local与Global)
    目录1.Local作用域2.Enclosing function locals作用域3.Global全局变量4.非局部变量nonlocal5.就近原则6.函数执行顺序7.循环、判断代...
    99+
    2024-04-02
  • python3--函数名本质,函数嵌套,闭包,装饰器
    python函数的嵌套和作用域链函数的嵌套调用def max2(x,y):     m = x if x > y ...
    99+
    2023-01-30
    函数 嵌套 本质
  • PHP 函数如何返回命名空间?
    从 php 函数返回命名空间的方法为:使用 namespace 关键字,后跟命名空间名称并以分号结束。该方法可通过使用 namespace 常量在函数中获取命名空间,该常量仅在函数或方法...
    99+
    2024-04-10
    php 命名空间
  • Python函数高级(命名空间、作用域、装饰器)
    目录一、名称空间和作用域1、命名空间(Namespace)1、一般有三种命名空间:2、命名空间查找顺序:3、命名空间的生命周期:2、作用域:3、全局变量和局部变量4、函数对象+作用域...
    99+
    2024-04-02
  • Python函数命名空间,作用域LEGB及Global详析
    目录一、命名空间和作用域1.1 定义1.2 内建命名空间和内建作用域1.3 全局命名空间和全局作用域1.3 局部命名空间和局部作用域1.4 总结1.5 扩展LEGB二、Global关...
    99+
    2024-04-02
  • PHP 函数命名中是否应该使用命名空间?
    使用命名空间的使用取决于场景:不同来源或避免冲突时使用命名空间有益。同一模块中不太可能有冲突时,使用命名空间会带来冗长和复杂性。 PHP 函数命名:是否需要使用命名空间? 命名空间在 ...
    99+
    2024-04-20
    php 命名空间
  • PHP 函数库如何使用命名空间?
    命名空间通过组织相关函数和类来避免 php 中的冲突,从而提高代码可读性和可维护性。要使用命名空间,请使用 namespace 声明,然后使用 namespacename\functio...
    99+
    2024-04-11
    php 命名空间 代码可读性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作