Импортируйте классы в функцию, чтобы упростить доступ к членам класса. Например, предположите, что существует пакет, который содержит несколько классов, и вы будете использовать только один из этих классов или статического метода в вашей функции. Используйте import
команда, чтобы упростить код. Если вы импортировали класс, вы не должны ссылаться на имя пакета:
function myFunc import pkg.MyClass obj = MyClass(arg,...); % call MyClass constructor obj.Prop = MyClass.staticMethod(arg,...); % call MyClass static method end
Импортируйте все классы в пакете с помощью синтаксиса pkg.*
:
function myFunc import pkg.* obj1 = MyClass1(arg,...); % call pkg.MyClass1 constructor obj2 = MyClass2(arg,...); % call pkg.MyClass2 constructor a = pkgFunction(); % call package function named pkgFunction end
Используйте import
импортировать статический метод так, чтобы можно было вызвать этот метод, не используя имя класса. Вызовите import
с полным именем класса, включая любые пакеты и имя статического метода.
function myFunc import pkg.MyClass.MyStaticMethod MyStaticMethod(arg,...); % call static method end
Используйте import
импортировать пакет функционирует так, чтобы можно было вызвать эти функции, не используя имя пакета. Вызовите import
с пакетом и именем функции.
function myFunc import pkg.pkgFunction pkgFunction(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