Как насчет этой конструкции: ?
Пара имеет ровно 2 связанных человека. У класса не должно быть никаких дополнительных свойств. Тем не менее, вы можете подумать о дате, когда он был создан. В случае брака может быть указано лицо, дающее фамилию, и т. Д. Возможно, в этом партнерстве есть и другие аспекты, поскольку вам, похоже, это необходимо.
Теперь, почему я использовал составную агрегацию? В основном композиция означает, что растворение составляющего элемента также устранит составные элементы. Так что это выглядит довольно католично, не так ли? Да и позор мне. Однако должно быть что-то, выражающее «человек может быть составлен только для одной пары». И это то, что комбинированная агрегация также говорит (на моей любимой странице 110):
Составная агрегация - это сильная форма агрегации, которая требует, чтобы объект части включался не более чем в один составной объект одновременно. Если составной объект удаляется, все его экземпляры детали, которые являются объектами, удаляются вместе с ним.
blockquote>Итак, вместо этого следует использовать общую композицию
Указывает, что свойство имеет общую семантику агрегации. Точная семантика совместной агрегации зависит от области применения и модели.
blockquote>с объяснением моделирования, объясняющим, что каждый элемент должен использоваться только один раз в общей композиции.
1111 Конечно, лучше всего было бы использовать простую ассоциацию с ограничением. Тем не менее, я оставлю диаграмму для развлечения читателей.
P.S. Прочтение различных комментариев заставляет меня думать, что семантика
Partnership
(и ее варианты братства) гораздо более чувствительна к социальным аспектам, чем тот, о котором интуитивно начинает думать. Таким образом, настоящий «ответ» должен быть следующим: сначала определить социальный контекст дляPartnership
.
os.popen () вернет кортеж со стандартным вводом и выводом подпроцесса.
Использовать подпроцесс . Вот скрипт 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";
Я уверен, что есть причина, по которой вы идете по выбранному вами маршруту, но почему бы просто не подписать в Python?
Как вы подписываете его? Может быть, мы могли бы оказать некоторую помощь в написании реализации на Python?
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()