Импортируйте классы в функцию, чтобы упростить доступ к членам класса. Например, предположите, что существует пакет, который содержит несколько классов, и необходимо использовать только один из этих классов в функции, или даже просто статический метод от того класса. Используйте команду import
, чтобы упростить код. Если вы импортировали класс, вы не должны ссылаться на имя пакета:
function myFunc import pkg.cls1 obj = cls1(arg,...); % call cls1 constructor obj.Prop = cls1.staticMethod(arg,...); % call cls1 static method end
Импортируйте все классы в пакете с помощью синтаксиса pkg.*
:
function myFunc import pkg.* obj1 = cls1(arg,...); % call pkg.cls1 constructor obj2 = cls2(arg,...); % call pkg.cls2 constructor a = pkgFunction(); % call package function named pkgFunction end
Используйте import
, чтобы импортировать функции пакета:
function myFunc import pkg.pkfcn pkfcn(arg,...); % call imported package function end
Постарайтесь не импортировать целый пакет с помощью подстановочного синтаксиса *
. Выполнение так импортирует незаданный набор имен в локальный осциллограф. Например, предположите, что у вас есть следующая структура папок:
+pkg/timedata.m % package function +pkg/@MyClass/MyClass.m % class definition file +pkg/@MyClass/timedata.m % class method
Импортируйте пакет и вызовите timedata
на экземпляре MyClass
:
import pkg.* myobj = pkg.MyClass; timedata(myobj)
Вызов timedata
находит функцию пакета, не метод класса, потому что MATLAB® применяет import
и находит pkg.timedata
сначала. Не используйте пакет в случаях, где вы имеете конфликты по совпадению имен и планируете импортировать пакет.
Вы не можете очистить список импорта от функциональной рабочей области. Чтобы очистить базовое рабочее пространство только, используйте:
clear import