我不确定这到底意味着什么或如何使用,但是在功能方面我遇到了这个功能。我能够动态地向函数添加属性。有人可以帮助我了解此功能的用途以及它是如何发生的吗?我的意思是毕竟它是一个函数名,我们如何动态为其添加属性?
def impossible():
print "Adding a bool"
impossible.enabled = True
# i was able to just do this. And this is a function, how does this add up?
print(impossible.enabled) # No attribute error. o/p --> True
最佳答案
在python函数中,对象是对象,它们具有各种内部属性,它们也可以具有__dict__
属性,并且像其他任何对象一样,__dict__
中的任何内容都是该对象的变量。在impossible.enabled
之后
def impossible():
print "Adding a bool"
print(impossible.__dict__) # {}
impossible.enabled = True
print(impossible.__dict__) # {'enabled': True}
这不会改变函数,因为在大多数情况下
__dict__
为空,并且函数中没有特殊值。实际上,它有点有用,因为您可以在函数中使用它来存储静态变量,而不会使全局名称混乱
关于python - 将属性附加到python中的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49839332/