class TextToNumbers():
def __init__(self, number):
self.text = str(number)
self.chunks = parse_text_to_chunks(self.text)
def parse_text_to_chunks(text_to_parse):
#stuff
这是我正在建设的课程的一个例子。我希望它在初始化时使用类方法定义一些变量。 (至少我认为这就是我想要的)我想如果我谈到我的最终目标,那就是我有一组复杂的信息需要在初始化时直接提供给一个类。如何在初始化时调用类方法来定义类变量?
答案 0 :(得分:1)
如果您正在寻找在初始化期间调用实例方法的方法,可以使用self
来调用此类
class TextToNumbers():
def __init__(self, number):
self.text = str(number)
self.chunks = self.parse_text_to_chunks(self.text)
print self.chunks
def parse_text_to_chunks(self, text_to_parse):
# 1st parameter passed is the current INSTANCE on which this method is called
self.var1 = text_to_parse[1:]
return self.var1
TextToNumbers(123)
我相信这是你真正需要的。但是如果你想要一个类方法
class TextToNumbers():
def __init__(self, number):
self.text = str(number)
self.chunks = TextToNumbers.parse_text_to_chunks(self.text)
print self.chunks
@classmethod
def parse_text_to_chunks(cls, text_to_parse):
# 1st parameter passed is the current CLASS on which this method is called
cls.var1 = text_to_parse[1:]
return cls.var1
TextToNumbers(123)
但是创建一个类方法来初始化__init__
中的类变量是没有意义的,因为类变量由类的所有实例共享,从__init__
调用将每次都覆盖一个对象已创建。