python 如何打印包含在另一个函数中并被第三个函数调用的函数?[closed]

ibps3vxo  于 2022-12-02  发布在  Python
关注(0)|答案(4)|浏览(171)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

13天前关闭。
Improve this question
我想打印10个,但出现错误:AttributeError: 'function' object has no attribute 'x'
怎么修?谢谢

def function1():
    def x(): 
        a=10
        return a
  
def function2():
    y = function1.x()
    return y

function2()
smdnsysy

smdnsysy1#

函数不是可以引用到其中的容器-类、对象、结构体或记录(取决于你的语言)提供了这些容器,但函数永远不会。函数所能或应该做的就是接受参数,运行并返回结果。
顺便说一句,一个很好的原因是函数只有在运行时才有内存存储它们的本地值(这被称为“堆栈帧”)。在函数中本地定义的值只有在函数运行时才存在。

wbgh16ku

wbgh16ku2#

您可以使用class,如下所示:

class function1(object):
    def x(): 
        a=10
        return a
  
def function2():
    y = function1.x()
    return y

function2()  #works now and returns 10

Working demo

mlnl4t2r

mlnl4t2r3#

您需要return x并将function1作为函数调用

def function1():
    def x(): 
        a=10
        return a
    return x
  
def function2():
    y = function1()()
    return y

function2()
fcwjkofz

fcwjkofz4#

def function1(func):
    def x():
        a=10
        return func(a)
    return x

@function1
def function2(y):
    return y

print(function2())

应该可以...

相关问题