如何用瓶子显示“ABCMeta”物体?分数的数据类型是什么?

时间:2017-12-01 01:22:16

标签: python python-3.x bottle

我想将分数数据类型显示为瓶

index.py

# -*- coding:utf-8 -*-
from fractions import Fraction
from bottle import route, view

@route('/')
@view("index_template")

def index():
    f = Fraction(3, 4)
    return dict(type(f))

index.template

{{f}}

Apache错误日志

  

TypeError:'ABCMeta'对象不可迭代

环境

·Cent OS 6 ·Python 3.6 ·Apache 2.2 ·mod_wsgi的-4.5 ·瓶子0.13 ·Chrome 62

1 个答案:

答案 0 :(得分:0)

只返回Fraction对象的字符串表示。如,

@route('/')
def index():
    f = Fraction(3, 4)
    return str(f)

另外(仅供参考):除非您在源代码中包含非ascii字符,否则不需要# -*- coding:utf-8 -*-

编辑:OP表示他/她想要返回Fraction对象的类型,而不是其值。在这种情况下,只需返回类型(作为字符串)。

@route('/')
def index():
    f = Fraction(3, 4)
    return str(type(f))

编辑#2 :OP是(我猜是)使用浏览器进行测试,并且响应呈现为html,由于页面显示为空白,因此混淆了OP。为了解决这个问题,我建议你回复一个文本回复:

from bottle import response

@route('/')
def index():
    f = Fraction(3, 4)
    response.content_type = 'text/plain' 
    return str(type(f))