【问题标题】:Best practices for loading up parameters under different modes into Python?将不同模式下的参数加载到Python中的最佳实践?
【发布时间】:2018-01-05 04:58:41
【问题描述】:

所以我有一个python类,它可以从事不同的“模式”。比如说,mode1,我有一个不同参数和设置的层次结构。在模式 2 中,我还有不同的设置层次结构等。加载这些参数的最佳做法是什么?

这是我的意思的一个例子:我有一个名为“Move”的 python 类,但是移动可以有不同的模式。如果模式设置为“walk”,那么它应该加载的参数可能是coolness_factor = 11, right_foot_first = True等。如果模式是“fly”,那么现在的参数可能是coolness_factor = 43, wing_flap_rate = 2.1, wing_length = 4.5等。我想当然,将所有这些都加载到我班级的 init 中。

那么,如何做到这一点的最佳做法是什么?

谢谢

【问题讨论】:

    标签: python parameters architecture parameter-passing


    【解决方案1】:

    这就是我会做的..

    class Move(object):
        def __init__(self, mode): 
            # I declared variables here for better view, you can remove it
            self.coolness_fac = 0
            self.right_foot_first = 0
            self.wing_flap_rate = 0
            self.wing_length = 0
            self.mode = mode
            if self.mode == "move":
                self.coolness_fac = 11
                self.right_foot_first = True
    
            if self.mode == "fly":
                self.coolness_fac = 43
                self.wing_flap_rate = 2.1
                self.wing_length = 4.5
    
        def printOut(self):
            print(self.mode)
            print(self.coolness_fac, 
            self.right_foot_first,
            self.wing_flap_rate,
            self.wing_length)
    
    m = Move("fly") # or "move"
    m.printOut()
    

    这可能不是最佳做法,但它应该可以完成这项工作。

    代码的输出应该是mode = "move"

    move
    11 True 0 0
    

    否则mode = "fly"

    fly
    43 0 2.1 4.5
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2014-06-16
      • 1970-01-01
      • 2014-02-13
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多