在类方法中使用类属性函数 - python

时间:2017-07-19 13:44:17

标签: python python-2.x class-attributes

我试图在python中使用这段代码:

class A:
    func = lambda: "go away"
    @classmethod
    def apply(cls):
        cls.func()
A.apply()

我收到此错误:

unbound method <lambda>() must be called with A instance as first argument (got nothing instead)

我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:0)

执行apply(A)有效。但是,您还需要使用func解决问题。

答案 1 :(得分:0)

所以这里有一堆问题。我不确定你想要实现什么,但你必须再看看文档。 首先,看看你的课程。 在里面你想要指定一个函数,Python使用def func(args)方法。如果要在类中使用它,则应使用self作为参数。

来自文档:

class MyClass:
    """A simple example class"""
    i = 12345

    def f(self):
        return 'hello world'

此外,lambda,在单词中是匿名函数。定义它时,您应该执行以下操作:

s = lambda x: x**2
s(2)

x将是您的函数参数,并且x**2您要返回的内容,因此该函数将返回4.

希望它能减少一些混乱,你会以更好的方式编写代码。祝你好运!