Вызов оболочки управляет от Squeak или Pharo

Сделайте функциональный краткий обзор, так, чтобы производные классы не имели никакого другого выбора, чем переопределить его.

@Ray Ваш код недопустим.

class parent {
public:
  virtual void handle_event(int something) const = 0 {
    // boring default code
  }
};

Абстрактные функции не могут иметь тел, определенных встроенный. Это должно быть изменено для становления

class parent {
public:
  virtual void handle_event(int something) const = 0;
};

void parent::handle_event( int something ) { /* do w/e you want here. */ }
9
задан ire_and_curses 12 September 2009 в 20:07
поделиться

4 ответа

Мне нравится Андрей Предложение Ваджны hasattr (var, '__ iter __') . Обратите внимание на эти результаты для некоторых типичных типов Python:

>>> hasattr("abc","__iter__")
False
>>> hasattr((0,),"__iter__")
True
>>> hasattr({},"__iter__")
True
>>> hasattr(set(),"__iter__")
True

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

Обратите внимание, что в Python 3 тип str имеет атрибут __ iter __ , и это не работает:

3
ответ дан 3 November 2019 в 01:02
поделиться

] Я думаю, вы можете использовать пакет OSProcess, чтобы делать то, что хотите. Кроме того, думаю, лучше спросить в списках рассылки squeak-dev или pharo.

5
ответ дан 3 November 2019 в 01:02
поделиться

Поддержка Shell в Squeak / Pharo довольно ограничена. Есть планы улучшить это; см. проект Coral . Ваш вклад приветствуется.

2
ответ дан 3 November 2019 в 01:02
поделиться

У вас есть два решения:

Используйте пакет ProcessWrapper. Плюсы: быстрая и простая установка. Минусы: ограниченная функциональность, только на win32.

Используйте пакет OSProcess / CommandShell. Плюсы: довольно хорошая функциональность (каналы, переменные среды, рабочее пространство в виде оболочки ...) и кроссплатформенность. Минусы: необходимо использовать инструменты VMMaker для создания внешнего плагина.

1
ответ дан 3 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: