Найдено результатов: 5

Как получить доступ к свойствам объекта из метода объекта?

Каков "purist" или "correct" способ доступа к свойствам объекта из метода объекта, который не является методом getter/setter?

Я знаю, что снаружи объекта вы должны использовать getter/setter,, но изнутри вы бы просто сделали это:

Java:

String property = this.property;

PHP:

$property = $this->property;

или ты бы так и сделал:

Java:

String property = this.getProperty();

PHP:

$property = $this->getProperty();

Простите меня, если мой Java немного не в порядке, прошел год с тех пор, как я программировал в Java...

EDIT:

Похоже, люди предполагают, что я говорю только о частных или защищенных переменных / свойствах. Когда я узнал ОО, меня научили использовать геттеры/сеттеры для каждого отдельного свойства, даже если оно было общедоступным (и на самом деле мне сказали никогда не делать никакой переменной/свойство общедоступным). Итак, я, возможно, начинаю с ложного предположения с самого начала. Похоже, что люди, отвечающие на этот вопрос, возможно, говорят, что вы должны иметь общественные свойства и что они не нуждаются в геттерах и сеттерах, что противоречит тому, чему меня учили, и тому, о чем я говорил, хотя, возможно, это тоже нужно обсудить. Хотя это, вероятно, хорошая тема для другого вопроса...

java   php   oop   theory    

472   19   16:03, 1st July, 2020


Какова наиболее эффективная графовая структура данных в Python?

Мне нужно уметь манипулировать большим (10^7 узлов) графом в python. Данные, соответствующие каждому узлу / ребру, минимальны, скажем, небольшое количество строк. Каков наиболее эффективный , с точки зрения памяти и скорости , способ сделать это?

Дикт диктов более гибок и прост в реализации, но я интуитивно ожидаю, что список списков будет быстрее. Опция списка также потребует, чтобы я хранил данные отдельно от структуры, в то время как дикты позволят сделать что-то подобное:

graph[I][J]["Property"]="value"

Что бы вы предложили?


Да, мне следовало бы немного прояснить, что я подразумеваю под эффективностью. В данном конкретном случае я имею в виду его в терминах произвольного поиска доступа.

Загрузка данных в память не является огромной проблемой. Это делается раз и навсегда. Трудоемкая часть-это посещение узлов, чтобы я мог извлечь информацию и измерить интересующие меня показатели.

Я не рассматривал возможность сделать каждый узел классом (свойства одинаковы для всех узлов), но похоже, что это добавит дополнительный уровень накладных расходов? Я надеялся, что у кого-то будет какой-то непосредственный опыт с подобным случаем, которым они могли бы поделиться. В конце концов, графики-это одна из самых распространенных абстракций в CS.

python   performance   data-structures   graph-theory    

448   0   16:03, 1st July, 2020


Что такое lambda (функция)?

Что такое lambda в мире компьютерных наук для человека, не имеющего опыта работы в области компьютерных наук?

lambda   language-agnostic   computer-science   terminology   theory    

476   2   06:46, 29th August, 2020


В чем смысл интерфейсов в PHP?

Интерфейсы позволяют создавать код, который определяет методы классов, реализующих его. Однако вы не можете добавить код к этим методам.

Абстрактные классы позволяют делать то же самое, а также добавлять код к методу.

Теперь, если вы можете достичь той же цели с абстрактными классами, зачем нам вообще нужна концепция интерфейсов?

Мне сказали, что это связано с теорией OO от C++ до Java, на которой основан материал PHP OO. Является ли эта концепция полезной в Java, но не в PHP? Может быть, это просто способ избежать того, чтобы заполнители были завалены в абстрактном классе? Я что-то упустил?

php   oop   interface   theory    

760   15   23:27, 29th August, 2020


Сложность замены Regex

Ответа на этот вопрос я нигде не получил. Какова сложность выполнения Regex-го совпадения и замены?

Edit: я работаю в python. Но хотелось бы знать в целом о самых популярных языках / инструментах (java, perl, sed).

regex   complexity-theory    

482   7   02:04, 29th August, 2020