모듈을 포함하고 Julia의 다른 모듈 내에서 해당 함수 중 하나를 호출

페드로 G.

구조체와 fit () 함수를 정의하는 Module1 모듈이 있다고 가정 해 보겠습니다. Module1을 포함하고 fit ()를 호출하는 test () 함수를 정의하는 다른 모듈 인 Parent라고합니다. 모듈 1에서 구조를 정의한 다음 부모에서 test ()를 호출하면 네임 스페이스에 문제가 있습니다. 이 예제의 코드는 다음과 같습니다.

#this module would be in a separate file
module Module1
    struct StructMod1
    end
    export StructMod1
    function fit(s::StructMod1)
    end
    export fit
end

module Parent
    #including the module with include("Module1.jl")
    module Module1
        struct StructMod1
        end
        export StructMod1
        function fit(s::StructMod1)
        end
        export fit
    end
    #including the exports from the module
    using .Module1
    function test(s::StructMod1)
        fit(s)
        return s
    end
    export test
end

using .Parent, .Module1

s = Parent.Module1.StructMod1()
@show test(s)
s2 = StructMod1()
@show test(s2)

그리고 출력

test(s) = Main.Parent.Module1.StructMod1()
ERROR: LoadError: MethodError: no method matching test(::StructMod1)
Closest candidates are:
  test(::Main.Parent.Module1.StructMod1) 

또는 .Module1 사용을 ..Module1 사용으로 바꾸면 s2 정의가 작동합니다. 하지만 .Parent를 사용하여 호출 할 때 Module1이 이미로드되었는지 확인해야합니다.

하나의 모듈로 구조체를 정의한 다음 다른 모듈의 함수와 함께 사용하는 가장 좋은 방법은 무엇입니까?

데이비드 바렐라

이중 포함으로 인해 오류가 발생합니다. 귀하의 예 Parent.Module1에서은 Module1. include멍청한 복사 / 붙여 넣기로 생각하는 것이 유용합니다 . 동일한 소스 파일을 공유하더라도 이중 포함은 두 개의 다른 모듈로 표시되도록합니다 (예제에서 볼 수 있음).

해결책은 include한 번만 모듈을 참조하기 위해 상대 가져 오기 를 사용하는 것입니다.

전체 모듈 세트를 구성하는 include경우 메인 모듈의 모든 모듈을 순차적으로 선호하고 필요한 경우 상대 가져 오기를 사용합니다. 나는 이것이 가장 간단한 접근 방식이라고 생각합니다.

최종 버전은 다음과 같습니다.

# Module1.jl
module Module1
    struct StructMod1
    end
    export StructMod1
    function fit(s::StructMod1)
    end
    export fit
end
# Parent.jl
module Parent
    using ..Module1
    function test(s::StructMod1)
        fit(s)
        return s
    end
    export test
end
#Main.jl
include("Module1.jl")
include("Parent.jl")

using .Parent, .Module1

s = Parent.Module1.StructMod1()
@show test(s)
s2 = StructMod1()
@show test(s2)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

클래스에 모듈을 중첩하고 모듈 함수를 직접 호출

분류에서Dev

Julia의 다른 모듈 내에서 모듈 포함

분류에서Dev

모듈 종속성에서 함수를 호출하는 방법 (다른 모듈)

분류에서Dev

다른 모듈에서 함수 호출

분류에서Dev

다른 모듈의 함수를 호출하는 Linux 커널 모듈

분류에서Dev

모듈을 가져 오기 전에 모듈에서 함수를 호출하고 있습니다.

분류에서Dev

다른 모듈의 팩토리 함수에서 함수 호출이 작동하지 않습니다.

분류에서Dev

사용자 정의 함수를 호출하는 Julia 모듈

분류에서Dev

Ruby의 모듈 curses에서 새로 고침 함수를 호출해야 할 때

분류에서Dev

다른 모듈에서 EventEmitter의 상속 된 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

해당 파일에서 require 함수를 사용하지 않고 npm 모듈을 다른 파일로 내보내는 방법

분류에서Dev

Colab의 다른 Python 모듈에서 사용자 정의 모듈을 호출하는 방법

분류에서Dev

angularjs의 다른 모듈 컨트롤러에서 한 모듈의 컨트롤러 함수 호출

분류에서Dev

TypeScript의 다른 모듈에서 선언 된 별칭으로 함수 호출

분류에서Dev

가져온 모듈에서 호출 된 함수를 재정의

분류에서Dev

한 Puppet 모듈에 정의 된 사용자 지정 Ruby 함수를 다른 모듈의 .pp 파일에서 호출 할 수 있습니까?

분류에서Dev

모듈에서 하나의 함수를 제외하고 모두 모의

분류에서Dev

모듈의 함수 내부에서 함수를 호출하는 Javascript 버튼 onclick 이벤트

분류에서Dev

다른 모듈에서 TypeScript 호출 정적 함수

분류에서Dev

Runspace 내부의 모듈에서 함수 호출

분류에서Dev

다른 모듈에서 활동을 호출하는 방법

분류에서Dev

그 fuction에 다른 기능이있는 pp의 함수에서 모듈을 호출하는 방법은 무엇입니까?

분류에서Dev

다른 모듈에서 하나의 Shiny 모듈의 변수 값 사용

분류에서Dev

html onclick의 javascript 모듈에서 함수를 호출하는 방법

분류에서Dev

어디에서나 require ()를 사용하지 않고 다른 모듈에서 노드 모듈 호출

분류에서Dev

Python 다중 처리 : 변수 전달을 사용하여 다른 스크립트에서 다중 처리로 모듈 호출

분류에서Dev

하나의 모듈 Elixir에서 모든 중복 된 genserver 호출을 얻는 방법

분류에서Dev

하나의 모듈 Elixir에서 모든 중복 된 genserver 호출을 얻는 방법

분류에서Dev

Python 다른 모듈에서 함수를 패치하고 내부적으로 호출하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    클래스에 모듈을 중첩하고 모듈 함수를 직접 호출

  2. 2

    Julia의 다른 모듈 내에서 모듈 포함

  3. 3

    모듈 종속성에서 함수를 호출하는 방법 (다른 모듈)

  4. 4

    다른 모듈에서 함수 호출

  5. 5

    다른 모듈의 함수를 호출하는 Linux 커널 모듈

  6. 6

    모듈을 가져 오기 전에 모듈에서 함수를 호출하고 있습니다.

  7. 7

    다른 모듈의 팩토리 함수에서 함수 호출이 작동하지 않습니다.

  8. 8

    사용자 정의 함수를 호출하는 Julia 모듈

  9. 9

    Ruby의 모듈 curses에서 새로 고침 함수를 호출해야 할 때

  10. 10

    다른 모듈에서 EventEmitter의 상속 된 함수를 호출하는 방법은 무엇입니까?

  11. 11

    해당 파일에서 require 함수를 사용하지 않고 npm 모듈을 다른 파일로 내보내는 방법

  12. 12

    Colab의 다른 Python 모듈에서 사용자 정의 모듈을 호출하는 방법

  13. 13

    angularjs의 다른 모듈 컨트롤러에서 한 모듈의 컨트롤러 함수 호출

  14. 14

    TypeScript의 다른 모듈에서 선언 된 별칭으로 함수 호출

  15. 15

    가져온 모듈에서 호출 된 함수를 재정의

  16. 16

    한 Puppet 모듈에 정의 된 사용자 지정 Ruby 함수를 다른 모듈의 .pp 파일에서 호출 할 수 있습니까?

  17. 17

    모듈에서 하나의 함수를 제외하고 모두 모의

  18. 18

    모듈의 함수 내부에서 함수를 호출하는 Javascript 버튼 onclick 이벤트

  19. 19

    다른 모듈에서 TypeScript 호출 정적 함수

  20. 20

    Runspace 내부의 모듈에서 함수 호출

  21. 21

    다른 모듈에서 활동을 호출하는 방법

  22. 22

    그 fuction에 다른 기능이있는 pp의 함수에서 모듈을 호출하는 방법은 무엇입니까?

  23. 23

    다른 모듈에서 하나의 Shiny 모듈의 변수 값 사용

  24. 24

    html onclick의 javascript 모듈에서 함수를 호출하는 방법

  25. 25

    어디에서나 require ()를 사용하지 않고 다른 모듈에서 노드 모듈 호출

  26. 26

    Python 다중 처리 : 변수 전달을 사용하여 다른 스크립트에서 다중 처리로 모듈 호출

  27. 27

    하나의 모듈 Elixir에서 모든 중복 된 genserver 호출을 얻는 방법

  28. 28

    하나의 모듈 Elixir에서 모든 중복 된 genserver 호출을 얻는 방법

  29. 29

    Python 다른 모듈에서 함수를 패치하고 내부적으로 호출하는 방법은 무엇입니까?

뜨겁다태그

보관