LINUX.ORG.RU

История изменений

Исправление user_id_68054, (текущая версия) :

...то можно я спрошу кой-что?

допустим у меня есть 4 модуля:

«module_A», «module_B», «module_C», «module_D»

модуль «module_B» — использует в своём коде — обращения к функциям-и-классам модуля «module_A» .

модуль «module_C» — использует в своём коде — обращения к функциям-и-классам модуля «module_B» . но не использует (напрямую не обращается) к функции-и-классам модуля «module_A» .

модуль «module_D» — использует в своём коде — обращения к функциям-и-классом модулей «module_A», «module_C». но не использует (напрямую не обращается) к функции-и-классам модуля «module_B» .

вопрос:

как сделать (в Ruby) чтобы модуль «module_C» — импортировал бы ТОЛЬКО то что есть внутри модуля «module_B» , но НЕ импортировал бы ни чего больше? то есть чтобы он НЕ знал бы ни чего про модуль «module_A» .

и как сделать чтобы модуль «module_D» — не знал бы ни чего про модуль «module_B» ? а импортировал бы только: «module_A» и «module_C» ?

пример на языке Python

(для того чтобы было бы понятно что я хочу от Ruby!)

# модуль "blahblah.module_A"

def func_A1(x):
    print(2**x)

def func_A2(x):
    print(4**x)
# модуль "blahblah.module_B"

from . import module_A

def func_B1(x):
    module_A.func_A1(x)
    module_A.func_A1(x+1)

def func_B2(x):
    module_A.func_A2(x)
    module_A.func_A2(x+1)
# модуль "blahblah.module_C"

from . import module_B

def func_C1(x):
    module_B.func_B1(x)
    module_B.func_B1(x+2)

def func_C2(x):
    module_B.func_B2(x)
    module_B.func_B2(x+2)
    
# модуль "blahblah.module_D"

from . import module_A
from . import module_C

def func_D1(x):
    module_A.func_A1(x)
    module_C.func_C1(x+1)

def func_D2(x):
    module_A.func_A2(x)
    module_C.func_C2(x+1)

надеюсь суть ясна! :)

Исправление user_id_68054, :

так как в этой теме есть много специалистов по Ruby...

Исходная версия user_id_68054, :

...то можно я спрошу кой-что?

допустим у меня есть 4 модуля:

«module_A», «module_B», «module_C», «module_D»

модуль «module_B» — использует в своём коде — обращения к функциям-и-классам модуля «module_A» .

модуль «module_C» — использует в своём коде — обращения к функциям-и-классам модуля «module_B» . но не использует (напрямую не обращается) к функции-и-классам модуля «module_A» .

модуль «module_D» — использует в своём коде — обращения к функциям-и-классом модулей «module_A», «module_C». но не использует (напрямую не обращается) к функции-и-классам модуля «module_B» .

вопрос:

как сделать (в Ruby) чтобы модуль «module_C» — импортировал бы ТОЛЬКО то что есть внутри модуля «module_B» , но НЕ импортировал бы ни чего больше? то есть чтобы он НЕ знал бы ни чего про модуль «module_A» .

и как сделать чтобы модуль «module_D» — не знал бы ни чего про модуль «module_B» ? а импортировал бы только: «module_A» и «module_C» ?

пример на языке Python

(для того чтобы было бы понятно что я хочу от Ruby!)

# модуль "module_A"

def func_A1(x):
    print(2**x)

def func_A2(x):
    print(4**x)
# модуль "module_B"

from . import module_A

def func_B1(x):
    module_A.func_A1(x)
    module_A.func_A1(x+1)

def func_B2(x):
    module_A.func_A2(x)
    module_A.func_A2(x+1)
# модуль "module_C"

from . import module_B

def func_C1(x):
    module_B.func_B1(x)
    module_B.func_B1(x+2)

def func_C2(x):
    module_B.func_B2(x)
    module_B.func_B2(x+2)
    
# модуль "module_D"

from . import module_A
from . import module_C

def func_D1(x):
    module_A.func_A1(x)
    module_C.func_C1(x+1)

def func_D2(x):
    module_A.func_A2(x)
    module_C.func_C2(x+1)

надеюсь суть ясна! :)