Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何防止作用域中的长变量名_Python_Variables_Scope - Fatal编程技术网

Python:如何防止作用域中的长变量名

Python:如何防止作用域中的长变量名,python,variables,scope,Python,Variables,Scope,我有这样的东西: self.megacity.resourceloader.sound.mcintro.play 有什么优雅的方法可以防止这样长的东西吗? 也许是某种结构性的改变 谢谢。请查阅以帮助您找到更好的方法来松开程序中组件之间的耦合: x = self.megacity.resourceloader.sound.mcintro x.play() 当应用于面向对象程序时,德米特定律可以 更准确地称为“函数/方法的德米特定律” LoD-F。在这种情况下,对象A可以请求服务调用A 对象实例B

我有这样的东西: self.megacity.resourceloader.sound.mcintro.play

有什么优雅的方法可以防止这样长的东西吗? 也许是某种结构性的改变

谢谢。

请查阅以帮助您找到更好的方法来松开程序中组件之间的耦合:

x = self.megacity.resourceloader.sound.mcintro
x.play()
当应用于面向对象程序时,德米特定律可以 更准确地称为“函数/方法的德米特定律” LoD-F。在这种情况下,对象A可以请求服务调用A 对象实例B的方法,但对象A无法通过 对象B访问另一个对象C以请求其服务。 这样做意味着对象A隐含地需要更大的 了解对象B的内部结构。而是B的接口 如有必要,应进行修改,以便直接服务于对象A 请求,并将其传播到任何相关子组件。或者, A可能直接引用对象C并发出请求 直接到那。如果遵循法律,只有对象B知道自己的规则 内部结构

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

当应用于面向对象程序时,德米特定律可以 更准确地称为“函数/方法的德米特定律” LoD-F。在这种情况下,对象A可以请求服务调用A 对象实例B的方法,但对象A无法通过 对象B访问另一个对象C以请求其服务。 这样做意味着对象A隐含地需要更大的 了解对象B的内部结构。而是B的接口 如有必要,应进行修改,以便直接服务于对象A 请求,并将其传播到任何相关子组件。或者, A可能直接引用对象C并发出请求 直接到那。如果遵循法律,只有对象B知道自己的规则 内部结构

使用以下命令,例如:

使用以下命令,例如:

class SoundPlayer:
    def play_megacity(self):
        return self.megacity.resourceloader.sound.mcintro.play()