首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python中的嵌套函数

python中的嵌套函数
EN

Stack Overflow用户
提问于 2021-07-17 11:54:52
回答 2查看 268关注 0票数 0

我有一个基于文件输入制作字典的函数。然后是另一个基于字典进行计算的函数。这两个函数嵌套在一个主函数中。即:

代码语言:javascript
运行
AI代码解释
复制
def make_dic():
     data=dict()
     code...
     return data
def make_calculation():
     for x,y in data.items()
     code....
def main():
    data=make_dic()
    make_calculation()

我的问题是我得到了一个错误: NameError: name 'data‘没有定义

当make_calculation()嵌套在make_dic()中时,如何使它们识别在make_dic()中创建的字典?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-17 11:58:58

将"data“作为参数传递给您的make_calculation函数:

代码语言:javascript
运行
AI代码解释
复制
def make_dic():
     data=dict()
     code...
     return data
def make_calculation(data):
     for x,y in data.items()
     code....
def main():
    data=make_dic()
    make_calculation(data)

您需要这样做的原因是Python的作用域规则(即程序中的位置,或者参数是否定义的“作用域”)。

参数"data“不是全局变量(很少推荐使用全局变量的,应该是最后的),因此make_calculation(data)需要接收元素作为参数,该参数是在其他地方定义的,-ultimately是在make_dic()中创建的参数。

@chepner在他们的评论中更正式地说了同样多的话(即Python在词汇上的作用域)。有关Python作用域规则的更多信息,请参见下面这个古老但仍然有用的答案:Short description of the scoping rules?

票数 1
EN

Stack Overflow用户

发布于 2021-07-17 12:13:14

在第一个函数中尝试放置全局数据,希望它有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68423851

复制
相关文章
python中作用域与函数嵌套
实际上我们在定义函数的时候,如果省略了星号,那么在调用函数的时候必须要省略星号,除非我们拆解后的参数个数刚好相等。
刘金玉编程
2019/07/31
7230
python中函数嵌套、函数作为变量以及闭包的原理
python允许创建嵌套函数。也就是说我们可以在函数里面定义函数,而且现有的作用域和变量生存周期依旧不变。
狼啸风云
2021/03/04
5.3K0
python中函数嵌套、函数作为变量以及闭包的原理
Python嵌套函数与匿名函数
函数的嵌套调用是在"函数调用中再调用其他函数"。也就是说:函数嵌套允许在一个函数中调用另外一个函数。如下: name = "Forest" def change(): name = "Forest1" def change2(): # global name 如果声明了这句,下面的name改的是最外层的全局变层 name = "Forest2" #这句注释掉的话,则打印Forest1 print("第3层打印", name)
Yuou
2022/09/26
5020
python-函数的对象、函数嵌套、名称
内存存储变量名与变量间的绑定关系的空间(存放变量名的空间),这个空间被称为名称空间。
py3study
2020/01/15
2.4K0
python 中的嵌套类
能够看到 类中 又定义了 类 ,这种情况我们称之为嵌套类 。给一个简单 demo 来认识嵌套类 。
py3study
2020/01/10
4.1K0
python中的嵌套类
在.NET和JAVA语言中看到过嵌套类的实现,作为外部类一个局部工具还是很有用的,今天在python也看到了很不错支持一下。动态语言中很好的嵌套类的实现,应该说嵌套类解决设计问题同时简化了程序,值得学习。
py3study
2020/01/08
3.6K0
Python嵌套函数 闭包
这也很好理解,在函数outer中定义了另外一个函数inner,而inner也必须在outer中被调用才能执行。
猫叔Rex
2022/01/24
9950
python3--嵌套函数
# Auther: Aaron Fan # 嵌套函数 # 定义: # 在一个函数体内,用def重新定义新的函数,才叫嵌套函数 # 示例1:  #属于嵌套函数 def foo():    print("in the foo")    def bar():        print("in the bar")    bar() foo() #而这种就不属于嵌套函数: #def test1(): #    test2() #test1()
py3study
2020/01/06
7500
Python函数嵌套定义的洪荒之力
本文重点在于:Python允许函数的嵌套定义,这在有些情况下会带来很多方便。 感谢中国石油大学(华东)计算机与通信工程学院李昕老师提供问题。 假设有个列表,内容如下: >>> x = list(range(20)) >>> x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 现在我们想得到一个新列表,其中每个值都是x中元素值加5,这很容易用Python内置函数map()实现,例如: >>> list(map(lam
Python小屋屋主
2018/04/16
1.1K0
函数的嵌套
# 输出:输出我在中国(大函数) 北京(小函数) def func_big(country): def func_small(city): print('我在%s,城市是%s' % (country, city)) func_small('北京') func_small('广州') func_big('中国') def func_big(country, bcity='北京'): def func_small(city): print
汪凡
2018/05/29
1.2K0
python基础之函数嵌套调用
  实际开发过程中,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数嵌套调用相关内容。
jiankang666
2022/12/05
5590
python基础之函数嵌套调用
python基础之函数嵌套定义
  实际开发过程中,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数嵌套定义相关内容。
jiankang666
2022/12/05
4900
python基础之函数嵌套定义
Python嵌套定义函数增强reduce()函数功能
2)functools标准库中的reduce()函数第一个参数可以是函数或lambda表达式,这个函数必须接收两个参数。
Python小屋屋主
2019/12/13
9000
Python嵌套定义函数增强reduce()函数功能
【说站】python函数嵌套调用的实现
以上就是python函数嵌套调用的实现,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
5930
【说站】python函数嵌套调用的实现
函数嵌套
现在有一个需求,通过给一个函数传参即可求得某个圆的面积或者圆的周长。也就是说把一堆工具丢进工具箱内,之后想要获得某个工具,直接从工具箱中获取就行了。
py3study
2020/01/16
9960
函数嵌套
Python动态参数/命名空间/函数嵌套
  def func(*args, **kwargs):     pass
py3study
2020/01/15
8300
lambda隐藏函数的嵌套
# 隐藏函数嵌套 f = (lambda a,b :a if a>b else b)(1000, 2000008) print((lambda a,g:a if a > g else g)(2000,f)) # lambda 推导式 l = [lambda x:x**i for i in range(4)] print(l[1](4))
汪凡
2018/05/29
1K0
零基础学习 Python 之嵌套函数
我在几天以前的文章中(零基础学习 Python 之函数对象)说过,函数不单单可以作为对象来传递,还可以在一个函数里面嵌套一个函数,这个就是我们今天要讲的嵌套函数。
编程文青李狗蛋
2019/11/07
3200
python 函数嵌套和nonlocal关键字
与global关键字有点相似,可以对比着理解。nonlocal关键字只能作用域局部变量,且始终找离当前最近的上层局部作用域中的变量。看栗子:
全栈程序员站长
2022/10/04
4270
Python学习(一)函数定义、使用与嵌套
本文介绍了Python中函数定义、使用和嵌套,以及Python中self和init的含义和作用。
码科智能
2018/01/02
1.3K0

相似问题

Python中的嵌套函数

62

python中嵌套函数(函数中的函数)的用途

50

返回Python中的嵌套函数

25

理解python中的嵌套函数

33

python中的嵌套递归函数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档