【问题标题】: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
祝你好运!