Main Content

네임스페이스 멤버를 함수로 가져오기

함수 내부에서 네임스페이스 멤버를 참조할 때, 네임스페이스 멤버를 함수로 가져오면 네임스페이스 멤버에 대한 액세스를 단순화할 수 있습니다. 일단 코드를 가져온 후에는 네임스페이스 이름을 사용할 필요가 없습니다.

참고

여기에서 사용된 네임스페이스 이름과 멤버는 예제를 설명하는 용도로만 쓰입니다. MATLAB® 설치에 포함되어 있지 않습니다. 이 기능을 사용해 보려면 사용자의 자체 경로에 폴더와 코드를 정의하십시오.

클래스, 네임스페이스 함수 및 정적 메서드 가져오기

예를 들어, import 명령을 사용하여 네임스페이스 mynamesp에서 MyClass를 가져옵니다. 이렇게 하면 함수 내부에서 네임스페이스 이름을 사용하지 않고도 MyClass를 참조할 수 있습니다.

function exampleFunction
   import mynamesp.MyClass 
   obj = MyClass(arg,...);                   % call MyClass constructor
   obj.Prop = MyClass.staticMethod(arg,...); % call MyClass static method
end

아래 예제에서 볼 수 있듯이 네임스페이스 함수와 정적 메서드에도 동일한 방법이 적용됩니다. 코드를 함수로 가져오면 네임스페이스를 사용하지 않고 코드를 호출할 수 있습니다.

function myFuncA
   import mynamesp.myFunction 
   myFunction(arg,...); % call imported namespace function
end
function myFuncB
   import mynamesp.MyClass.myStaticMethod 
   myStaticMethod(arg,...); % call static method
end

구문 mynamesp.*를 사용하여 네임스페이스에 포함된 모든 코드를 가져올 수 있습니다. 그러나 이름이 충돌할 가능성이 있으므로 이 방식은 사용하지 않도록 하십시오. 자세한 내용은 이름이 동일한 네임스페이스 멤버 가져오기 항목을 참조하십시오.

이름이 동일한 네임스페이스 멤버 가져오기

네임스페이스 멤버를 가져올 때는 이름 충돌이 발생하지 않도록 주의해야 합니다. 예를 들어, 다음 폴더 계층 구조는 timedata라는 동일한 이름을 갖는 네임스페이스 함수와 클래스 메서드를 포함합니다.

+mynamesp/timedata.m           % namespace function
+mynamesp/@MyClass/MyClass.m   % class definition file
+mynamesp/@MyClass/timedata.m  % class method

네임스페이스를 가져오고 MyClass의 인스턴스에 대해 timedata의 호출을 시도합니다.

import mynamesp.*
myobj = MyClass;
timedata(myobj)

점 구문이 아닌 함수 구문을 사용하여 timedata를 호출하면 MATLAB은 가져온 함수를 먼저 찾기 때문에 네임스페이스 함수가 호출됩니다.

가져오기 목록 지우기

함수 작업 공간에서는 가져오기 목록을 지울 수 없습니다. 그러나 clear import를 사용하여 기본 작업 공간을 지울 수 있습니다.

참고 항목

관련 항목