Так что я потратил 10 минут, используя отладчик, перепрыгнув с одной функции на другую, отслеживая путь выполнения простого вызова doc MyClass
.
В конечном счете это привело меня к следующему файлу:
fullfile(toolboxdir('matlab'),'helptools','+helpUtils','isAccessible.m')
Эта функция вызывается в процессе генерации документации для класса, чтобы определить, если элементы класса (включая методы, свойства и события) публично доступный и не скрытый. Эта информация используется позже, чтобы «отбросить» элементы.
Так что, если вы готовы изменить внутренние функции MatLab, и вы хотите, чтобы документы всегда показывают все методы и свойства, независимо от их объема, просто переписать функцию, чтобы сказать:
function b = isAccessible(classElement, elementKeyword)
b = true;
return
% ... some more code we'll never reach!
end
Конечно, дон «забудьте сделать резервную копию файла в случае, если вы передумали позже :)
(на недавнем Windows, вам нужно выполнить этот шаг с правами администратора)
В качестве теста возьмите класс образца, определенный в this page, и запустите doc someClass
.Результат:
Каков ваш прецедент? В общем, частные методы используются только самим классом и не могут быть доступны извне. Другими словами: пользователи не могут его видеть, не могут использовать, поэтому нет необходимости знать о самом существовании метода (не говоря уже о том, как его использовать). Это один из принципов инкапсуляции. Любая документация предназначена только для глаз разработчика, и поэтому ее можно оставить в коде. –
Да, документация предназначена для использования другими разработчиками. Из того, что я вижу, это лучший способ включить документацию для исходного кода. Я не вижу причины, по которой документация скрывала бы частные методы и свойства, поскольку исходные файлы MATLAB могут быть замечены кем угодно. Это документация, а не код. Я не понимаю, почему MATLAB следит за правилами парадигмы ООП в документации. – Vladimir
Если вы распространяете код MATLAB конечным пользователям, вам обычно требуется, чтобы они видели только документацию по функциональным возможностям, к которой они могут напрямую обращаться, и не следует путать детали реализации, такие как частные методы. Если разработчики хотят видеть больше деталей, они могут посмотреть на сам код. Исходные файлы MATLAB никоим образом не могут быть замечены - вы можете «pcode» их. –