繁体   English   中英

Python:如何使用类方法在__init__函数中定义变量?

[英]Python: How to define a variable in an __init__ function with a class method?

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

这是我正在建设的课程的一个例子。 我希望它在初始化时使用类方法定义一些变量。 (至少我认为这就是我想要的)我想如果我谈到我的最终目标,那就是我有一组复杂的信息需要在初始化时直接提供给一个类。 如何在初始化时调用类方法来定义类变量?

如果您正在寻找一种在初始化期间调用实例方法的方法,您可以使用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__调用都会覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM