2

我想知道当模块中定义的方法被定义为module_functions、类方法(即'def self.foo')和实例方法(即'def foo')时,它们的作用域的细节

如果将模块包含在不同的类中,行为会如何变化?

我一直在互联网上四处寻找,但无法找到一个好的解释。

4

1 回答 1

3

在模块上定义了一个类(或者更准确地说是模块)方法,并以模块作为接收者来调用。你的时候不会混进去的include YourModule

当你这样做时,模块的实例方法作为调用者的实例方法混合在一起include YourModule

module_function方法采用您在模块中定义的实例方法,将其设为私有(混入时将保持私有),并将其转换为公共模块方法。

于 2013-04-02T17:59:03.600 回答