首页 > 解决方案 > 在 python 中实例化类时如何返回浮点类型?

问题描述

我正在寻找一种在类实例化时返回浮点数的方法,如下所示:

class SMA:
"""
    Simple Moving Average

    fomula :
        sma = (a1+a2+a3+....) / n
"""
    def __init__(self,data_feed,time_period=None):
        self.data_feed = data_feed
        if not time_period:
            self.time_period = len(self.data_feed)
        else:
            self.time_period = time_period
        self.sma = sum(self.data_feed) / self.time_period

    def __repr__(self):
        return repr(self.sma)

>>> b = SMA(data_feed=[1,2,3,4],time_period=4)
>>> print(type(b))
... float

但是有问题因为'b'有SMA类型,而不是浮动

标签: python

解决方案


b是类的对象SMA,这就是它返回其类类型的原因。返回一个浮点值创建一个函数

class SMA:
    def __init__(self,data_feed,time_period=None):
        self.data_feed = data_feed
        if not time_period:
            self.time_period = len(self.data_feed)
        else:
            self.time_period = time_period
        
    def get_value(self):
        return sum(self.data_feed) / self.time_period

b = SMA(data_feed=[1,2,3,4],time_period=4)
type(b.get_value())

__repr__返回对象的可打印表示。


推荐阅读