Синтаксис, чтобы создать объект pyObj Python® :
pyObj = py.modulename.ClassName(varargin)
где varargin список аргументов конструктора, заданных __init__ метод в ClassName.
В MATLAB® объекты Python являются ссылочными типами (объекты указателя) и не придерживаются копии на присвоении MATLAB и правил передачи значением. Когда вы копируете объект указателя, только указатель копируется, и и старые и новые указатели относятся к тем же данным. Когда вы копируете переменную MATLAB (объект значения), переменные данные также копируются. Новая переменная независима от изменений в исходной переменной.
Следующий пример создает объект TextWrapper класс в библиотеке textwrap стандарта Python модуль.
Считайте подпись конструктора, __init__.
py.help('textwrap.TextWrapper.__init__')Help on method __init__ in textwrap.TextWrapper: textwrap.TextWrapper.__init__ = __init__(self, width=70, initial_indent='', subsequent_indent='', expand_tabs=True, replace_whitespace=True, fix_sentence_endings=False, break_long_words=True, drop_whitespace=True, break_on_hyphens=True) unbound textwrap.TextWrapper method
Создайте TextWrapper по умолчанию объект. Вы не должны передавать входные параметры, потому что каждый аргумент имеет значение по умолчанию, идентифицированное знаком "равно" (=Символ.
tw = py.textwrap.TextWrapper;
tw =
Python TextWrapper with properties:
width: 70
subsequent_indent: [1x1 py.str]
wordsep_simple_re_uni: [1x1 py._sre.SRE_Pattern]
fix_sentence_endings: 0
break_on_hyphens: 1
break_long_words: 1
wordsep_re_uni: [1x1 py._sre.SRE_Pattern]
initial_indent: [1x1 py.str]
expand_tabs: 1
replace_whitespace: 1
drop_whitespace: 1
<textwrap.TextWrapper instance at 0x000000006D58F808>Изменить логическое значение, например, break_long_words свойство, введите:
tw.break_long_words = 0;
Изменить числовое значение, например, width свойство, сначала определите числовой тип.
class(tw.width)
ans = int64
По умолчанию, когда вы передаете номер MATLAB функции Python, Python читает его как плавание. Если функция ожидает целое число, Python может выдать ошибку или привести к неожиданным результатам. Явным образом преобразуйте номер MATLAB в целое число. Например, введите:
tw.width = int64(3);
Считайте справку для wrap метод.
py.help('textwrap.TextWrapper.wrap')Help on method wrap in textwrap.TextWrapper:
textwrap.TextWrapper.wrap = wrap(self, text) unbound textwrap.TextWrapper method
wrap(text : string) -> [string]
Reformat the single paragraph in 'text' so it fits in lines of
no more than 'self.width' columns, and return a list of wrapped
lines. Tabs in 'text' are expanded with string.expandtabs(),
and all other whitespace characters (including newline) are
converted to space.Создайте список перенесенных линий, w, от входа T.
T = 'MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming.'; w = wrap(tw,T); whos w
Name Size Bytes Class Attributes w 1x1 112 py.list
Преобразуйте py.list к массиву ячеек и отображают результаты.
wrapped = cellfun(@char, cell(w), 'UniformOutput', false); fprintf('%s\n', wrapped{:})
MATLAB® is a high- level language and interactive environment for numerical computation, visualization, and programming.
Несмотря на то, что width 3, устанавливая break_long_words свойство ко лжи заменяет width значение в отображении.