Python:如何防止范围内的长变量名称

时间:2012-07-07 21:42:36

标签: python variables scope

我有类似的东西: self.megacity.resourceloader.sound.mcintro.play()

有没有任何优雅的方法可以防止这样长的东西? 或许是某种结构性变化?

感谢。

3 个答案:

答案 0 :(得分:2)

x = self.megacity.resourceloader.sound.mcintro
x.play()

答案 1 :(得分:2)

查找Law of Demeter以帮助您找到更好的方法来放松程序中组件之间的耦合:

  

当应用于面向对象程序时,Demeter法则可以   更准确地称为“Demeter for Function / Methods”   (LOD-F)。在这种情况下,对象A可以请求服务(调用a   对象实例B的方法),但对象A不能“到达”   对象B访问另一个对象C,以请求其服务。   这样做意味着对象A隐含地需要更大   对象B的内部结构的知识。相反,B的界面   应该在必要时修改,以便它可以直接服务对象A.   请求,将其传播到任何相关的子组件。或者,   A可能直接引用对象C并发出请求   直接到那个。如果遵循法律,则只有对象B知道自己的法律   内部结构。

答案 2 :(得分:0)

使用facade http://en.wikipedia.org/wiki/Facade_pattern

class SoundPlayer:
        def PlayMegacity (target):
              target.megacity.resourceloader.sound.mcintro.play()