Как назвать сценарий Perl из Python, передав вход по каналу к нему?

Как насчет этой конструкции: enter image description here?

Пара имеет ровно 2 связанных человека. У класса не должно быть никаких дополнительных свойств. Тем не менее, вы можете подумать о дате, когда он был создан. В случае брака может быть указано лицо, дающее фамилию, и т. Д. Возможно, в этом партнерстве есть и другие аспекты, поскольку вам, похоже, это необходимо.

Теперь, почему я использовал составную агрегацию? В основном композиция означает, что растворение составляющего элемента также устранит составные элементы. Так что это выглядит довольно католично, не так ли? Да и позор мне. Однако должно быть что-то, выражающее «человек может быть составлен только для одной пары». И это то, что комбинированная агрегация также говорит (на моей любимой странице 110):

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

blockquote>

Итак, вместо этого следует использовать общую композицию

Указывает, что свойство имеет общую семантику агрегации. Точная семантика совместной агрегации зависит от области применения и модели.

blockquote>

с объяснением моделирования, объясняющим, что каждый элемент должен использоваться только один раз в общей композиции.

1111 Конечно, лучше всего было бы использовать простую ассоциацию с ограничением. Тем не менее, я оставлю диаграмму для развлечения читателей.

P.S. Прочтение различных комментариев заставляет меня думать, что семантика Partnership (и ее варианты братства) гораздо более чувствительна к социальным аспектам, чем тот, о котором интуитивно начинает думать. Таким образом, настоящий «ответ» должен быть следующим: сначала определить социальный контекст для Partnership.

6
задан Alex Fort 28 April 2009 в 15:03
поделиться

5 ответов

os.popen () вернет кортеж со стандартным вводом и выводом подпроцесса.

9
ответ дан 8 December 2019 в 02:53
поделиться

«Я»

2
ответ дан 8 December 2019 в 02:53
поделиться

Использовать подпроцесс . Вот скрипт Python:

#!/usr/bin/python

import subprocess

var = "world"

pipe = subprocess.Popen(["./x.pl", var], stdout=subprocess.PIPE)

result = pipe.stdout.read()

print result

А вот скрипт Perl:

#!/usr/bin/perl

use strict;
use warnings;

my $name = shift;

print "Hello $name!\n";
11
ответ дан 8 December 2019 в 02:53
поделиться

Я уверен, что есть причина, по которой вы идете по выбранному вами маршруту, но почему бы просто не подписать в Python?

Как вы подписываете его? Может быть, мы могли бы оказать некоторую помощь в написании реализации на Python?

2
ответ дан 8 December 2019 в 02:53
поделиться
from subprocess import Popen, PIPE
p = Popen(['./foo.pl'], stdin=PIPE, stdout=PIPE)
p.stdin.write(the_input)
p.stdin.close()
the_output = p.stdout.read()
7
ответ дан 8 December 2019 в 02:53
поделиться