如何在函数定义中设置函数属性/属性?

时间:2018-03-01 02:46:39

标签: python function functools

如何在函数定义中设置函数属性/属性?

例如,有没有办法在函数定义中实现这个目的:

def test():
    pass

test.order = 1

这就是:

def test():
    self.order = 1
    pass

print(test.order)

1 个答案:

答案 0 :(得分:1)

在python中,function也是一个对象,所以你当然可以设置一个函数的属性。

但是函数的属性与函数的逻辑无关,因此您可能希望在函数外部定义它们。 decorator可能是个不错的选择。

def function_mark(**kwargs):
    def decoractor(func):
        func._my_info = kwargs
        return func
    return decoractor

@function_mark(order=1)
def test():
    pass

print(test._my_info)
相关问题