-1
  1. 有一个对象trade_pair,其方法能够返回关于存储在报价和值中的浮点值(两种货币的数量、当前价格等)。仅适用于计算但不适合人类并发送到交易所 API 的数学浮点值(对最小值、精度和代码有要求)。

例如:
trade_pair.get_base_value - 是返回浮点数2.43333333333

trade_pair.price - 是返回浮点数51.033452476

  1. 另一方面,存在将浮点数格式化为具有所需精度的方便字符串值的逻辑。这样的数据适合API,便于人类阅读,但不适合数学运算。

例如:
trade_pair.get_base_value_formatted - 同时返回 str "2.43300"(最小代码为 0.001)

trade_pair.price_formatted - 返回 str"51.03345"

如何将 1 和 2 合并到 OOP 模式而不重复 getter 并且没有函数包装器,如format(trade_pair.get_base_value)..?

4

1 回答 1

0

对于这个trade_pair对象,如果你不想写一个函数来返回字符串和另一个返回浮点数,我建议通过添加一个标志来合并它们。例如:

def price(self,formatted=False):
    if formatted: return self.price # returns float
    return str(self.price).format(...) # use whatever conversion method you want

这样您就可以将trade_pair.price()其用于浮点数和trade_pair.price(True)/或trade_pair.price(formatted=True)字符串。

于 2021-03-03T22:34:01.690 回答