Python - 动态地向函数添加变量。为什么这可能?

时间:2018-05-04 11:53:56

标签: python python-3.x

我是一名Java程序员,正在进入Python,有些事情令人费解。例如,动态地向函数添加变量。例如:

def main():
    print ("Hello World")


main.temp = 50

print (main.temp)

这甚至意味着什么?为什么要将变量添加到函数中?为什么允许这样做?为什么我可以通过main.temp

引用该功能

1 个答案:

答案 0 :(得分:1)

Python中的函数是一流的对象,这意味着你可以几乎做任何你想做的事情。哎呀,你甚至可以这样做:

def foo(): pass

foo.inner_foo = lambda: print('inner foo')

foo.inner_foo()
# inner foo

是的,它是一个具有属性的函数,它是一个函数。是的,我们可以更深入:

def foo(): pass

foo.inner_foo = lambda: None

foo.inner_foo.inner_inner_foo = lambda: print('inner inner foo')

foo.inner_foo.inner_inner_foo()
# inner inner foo

是的,我们可以更深入,但你明白了......