来自数据库的硬编码变量

多米尼克

长期稳定但会随时间变化的变量的设计模式是什么?假设2015年和2016年的所得税税率为18%,从2017年1月1日起将为20%。

INCOME_TAX = 0.18

def _calculate_tax(self, income, tax=INCOME_TAX):
    return income*tax

当INCOME_TAX在2017年更改为0.2时,前几年的向后兼容性将被破坏。我认为将这个变量放入数据库中以允许在管理面板中对其进行某种修改可能是一个好主意,但是这样做必须有一些行业标准或良好实践。

glglgl

如果速率随时间变化,则必须使用与时间有关的函数对其进行建模。

下一步是如何在给定的时间点或时间范围内确定正确的值:

  1. 如果将值硬编码到程序中,则每次更改后都必须更改程序。
  2. 如果将其放入数据库中,则会有一个附加的数据库查询,但可以在“实现中”对其进行更改。
  3. 您还需要在程序广泛的情况下从中央服务器加载正确的值并将其存储在某个位置。

根据您使用的解决方案,您可以执行

def calculate_tax_for_year(self, income, year):
    return _calculate_tax_for_year(self, income, tax_for_year(year)):

def tax_for_year(year): # solution 1
    if year < 2010: return .2
    if year < 2013: return .18
    # etc.

def tax_for_year(year): # solution 2
    with dbconn as cursor:
        cursor.execute("SELECT rate FROM taxrate WHERE year == %s", year)
        return cursor.fetch_one_row() # don't remember the syntax; something like this...

# solution 3:
def tax_for_year(year):
    # just describing the steps:
    with open("path/to/taxfile", "r") as f:
        taxdata = f.read()
    # parse table file, e. g. CSV
    # find the right entry
    return entry_matching_for_given_year

def update_tax_file():
    import urllib
    conn = urllib.urlopen("http://my.taxfile/url.csv")
    # check if the file has changed since last check
    # if so:
    data = conn.read()
    with open("path/to/taxfile", "w") as f:
        f.write(data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自数据库的硬编码变量

来自分类Dev

如何为数据库输入硬编码值?

来自分类Dev

Android:删除数据库路径的硬编码

来自分类Dev

来自数据库的php变量

来自分类Dev

是否可以将“自动搜索”字段从硬编码的“建议”更改为数据库中的数据?

来自分类Dev

从数据库获取SELECT的下拉值,而不是在UI(Angularjs)上进行硬编码

来自分类Dev

Java:将分数插入远程MySQL数据库,而无需对登录凭据进行硬编码

来自分类Dev

将值存储在数据库中或对其进行硬编码

来自分类Dev

如何在不对凭据进行硬编码的情况下正确连接到数据库?

来自分类Dev

引用来自其他数据库的表变量

来自分类Dev

使用 Mongoose 迭代来自数据库条目的变量

来自分类Dev

MySQL数据库编码

来自分类Dev

字符编码与数据库

来自分类Dev

ASP.NET MVC中的简单,硬编码授权,而无需复杂的提供程序和数据库

来自分类Dev

基于 ASP.NET MVC 中的硬编码下拉列表选择显示数据库中的项目列表

来自分类Dev

打印数据库的所有元素,使用 Flask 转换为 HTML 中的 python 列表,无需硬编码值

来自分类Dev

来自数据库的视频

来自分类Dev

来自数据库的多行

来自分类Dev

.NET Core 高内存使用率 base64 编码来自数据库的消息

来自分类Dev

使用来自数据库的真实数据创建编码数据对象进行单元测试

来自分类Dev

来自Postgresql数据库的元数据

来自分类Dev

如何清理来自数据库的数据

来自分类Dev

如何清理来自数据库的数据

来自分类Dev

显示来自数据库PDO的数据

来自分类Dev

这是最佳编码实践,分配给变量或从数据库中获取

来自分类Dev

在Oracle数据库中编码

来自分类Dev

PHP-数据库结果编码?

来自分类Dev

python数据库API编码

来自分类Dev

如何为图数据库编码

Related 相关文章

  1. 1

    来自数据库的硬编码变量

  2. 2

    如何为数据库输入硬编码值?

  3. 3

    Android:删除数据库路径的硬编码

  4. 4

    来自数据库的php变量

  5. 5

    是否可以将“自动搜索”字段从硬编码的“建议”更改为数据库中的数据?

  6. 6

    从数据库获取SELECT的下拉值,而不是在UI(Angularjs)上进行硬编码

  7. 7

    Java:将分数插入远程MySQL数据库,而无需对登录凭据进行硬编码

  8. 8

    将值存储在数据库中或对其进行硬编码

  9. 9

    如何在不对凭据进行硬编码的情况下正确连接到数据库?

  10. 10

    引用来自其他数据库的表变量

  11. 11

    使用 Mongoose 迭代来自数据库条目的变量

  12. 12

    MySQL数据库编码

  13. 13

    字符编码与数据库

  14. 14

    ASP.NET MVC中的简单,硬编码授权,而无需复杂的提供程序和数据库

  15. 15

    基于 ASP.NET MVC 中的硬编码下拉列表选择显示数据库中的项目列表

  16. 16

    打印数据库的所有元素,使用 Flask 转换为 HTML 中的 python 列表,无需硬编码值

  17. 17

    来自数据库的视频

  18. 18

    来自数据库的多行

  19. 19

    .NET Core 高内存使用率 base64 编码来自数据库的消息

  20. 20

    使用来自数据库的真实数据创建编码数据对象进行单元测试

  21. 21

    来自Postgresql数据库的元数据

  22. 22

    如何清理来自数据库的数据

  23. 23

    如何清理来自数据库的数据

  24. 24

    显示来自数据库PDO的数据

  25. 25

    这是最佳编码实践,分配给变量或从数据库中获取

  26. 26

    在Oracle数据库中编码

  27. 27

    PHP-数据库结果编码?

  28. 28

    python数据库API编码

  29. 29

    如何为图数据库编码

热门标签

归档