python中是否有可能从构造函数中调用classmethod?

时间:2011-12-16 13:51:17

标签: python class methods constructor

python中是否有可能从构造函数中调用classmethod?

我在类中有一个方法,并希望在创建新元素时调用它。

有可能吗?

  def __init__(self, val1, val2):
    if (val1 == 5) and (val2 == 2):
        function5_2(self)

  def function5_2(self):                
      (arguments)

2 个答案:

答案 0 :(得分:4)

是的,你可以这样做:

class Foo(object):

    def __init__(self, a):
        self.a = a
        self.cls_method()

    @classmethod
    def cls_method(cls):
        print 'class %s' % cls.__name__

输出:

class Foo

答案 1 :(得分:2)

是的,确实如此。以下是从构造函数调用类方法的示例:

class C(object):

  def __init__(self):
    C.func()

  @classmethod
  def func(cls):
    print 'func() called'

C()