我是一名Java程序员,正在进入Python,有些事情令人费解。例如,动态地向函数添加变量。例如:
def main():
print ("Hello World")
main.temp = 50
print (main.temp)
这甚至意味着什么?为什么要将变量添加到函数中?为什么允许这样做?为什么我可以通过main.temp
答案 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
是的,我们可以更深入,但你明白了......