如果运行类方法,则初始化变量

时间:2017-07-25 16:12:13

标签: python oop

我有一个班级,比如

class D:
    def __init__(self):
        """some variables"""
    def foo(self):
        """generates lots of data"""

我希望能够存储foo在正在调用foo的类的实例中创建的所有数据。几乎像创建一个新的初始化变量,但只有一次调用该方法。如果用户从不调用foo,则无需先生成数据。

谢谢!

2 个答案:

答案 0 :(得分:2)

如何制作一个标志,说明数据是否已经生成?

class D:
    def __init__(self):
        self.already_generated = False
        """some variables"""
    def foo(self):
        """generates lots of data"""
        if not already_generated:
            self.generate()...
            already_generated = True

    def generate(self,...):

答案 1 :(得分:0)

不确定这是否是您正在尝试做的事情,但如果您想要一个类方法来生成可以从该实例访问的数据,您可以将其放入作为该类成员的数据结构中:

function display_message() {
    var low = 30,
        medium = 60,
        rank;
    mypoints = 67; // for example
    rank = ['low', 'medium', 'high'][+(mypoints > low) + +(mypoints > medium)];
    console.log('You got a ' + rank + ' score');
}

display_message();