2017-07-29 7 views
0

私はpythonクラスを持っており、それは異なる "モード"に従事することができます。たとえば、mode1では、私はさまざまなパラメータと設定の階層を持っています。 mode2では、私はまだ別の階層構造を持っています。これらのパラメータをどのようにロードするのがベストプラクティスですか?さまざまなモードでパラメータをPythonにロードするためのベストプラクティス?

ここでは、私が意味するものの例です:私は "移動"という名前のPythonクラスを持っていますが、動きは異なるモードを持つことができます。モードが "walk"に設定されている場合、ロードするパラメータはcoolness_factor = 11, right_foot_first = Trueなどとなります。ただし、モードが「fly」の場合は、パラメータがcoolness_factor = 43, wing_flap_rate = 2.1, wing_length = 4.5などになります。私のクラスののinit。

どのようにするのがベストプラクティスですか?これは私が何をするのかである

おかげ

答えて

0

..

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 

fly 
43 0 2.1 4.5 

mode = "fly"かの幸運でなければなりません!

関連する問題