【发布时间】:2016-05-09 15:29:20
【问题描述】:
给定这个简单的代码,我在其中声明了一个类和一个函数。我主要尝试调用该函数,但未进行调用。我没有收到任何错误,但如果我打印出来以了解呼叫是否发生,则没有任何反应。
型号
class Balance(Document):
gross_balance = FloatField(required=True, min_value=0, default=0)
@classmethod
def createBalance(cls, gross_balance):
result = yield Balance.objects.create(gross_balance = gross_balance)
result.save()
@classmethod
def sayHi(cls):
print "Hi there"
主要
from models import Balance
class CreateBalanceHandler(tornado.web.RequestHandler):
@tornado.gen.coroutine
def post(self):
gross_balance = self.get_argument('gross_balance')
Balance.createBalance(gross_balance)
Balance.sayHi()
self.redirect('/query/{}'.format(gross_balance))
我做错了什么? sayHi 函数显示它的打印,但对 createBalance 没有反应。
【问题讨论】:
-
无法复制。发布minimal reproducible example。
-
@VincentSavard 我发布了一个更完整的示例
-
这是您的实际缩进,
createBalance在类主体之外? -
另外,我不熟悉龙卷风,但
Balance.createBalance(gross_balance)调用只是创建一个协程,而不是执行它的任何代码。你应该yield from那个协程还是什么?
标签: python python-2.7 tornado class-method motorengine