将函数提供的任何输出保存到变量中

时间:2014-04-29 23:26:47

标签: python variables

一般是编程新手,特别是Python新手,我有一些初学者的麻烦。

我正在尝试NLTK中的一个名为generate:

的函数
string.generate()

它返回看起来像字符串的东西。但是,如果我写:

stringvariable = string.generate()

stringvariable = str(string.generate())

...... stringvariable总是空的。

所以我猜我在这里遗漏了一些东西。我在屏幕上看到的文本输出是否可以是字符串输出?如果是这样,我有什么方法可以获取输出并将其放入变量中吗?

简单地说,如果不是如上所述,如何将string.generate()中的内容变为stringvariable?

2 个答案:

答案 0 :(得分:1)

你可以重写生成。唯一的缺点是它可能会更改,您的代码可能无法更新以反映这些更改:

from nltk.util import tokenwrap
def generate_no_stdout(self, length=100):
    if '_trigram_model' not in self.__dict__:
        estimator = lambda fdist, bins: LidstoneProbDist(fdist, 0.2)
        self._trigram_model = NgramModel(3, self, estimator=estimator)
    text = self._trigram_model.generate(length)
    return tokenwrap(text)

然后" a.generate()"成为" generate_no_stdout(a)"

答案 1 :(得分:0)

generate() prints its output而非返回字符串,因此您需要capture it