В следующем сегменте кода:
try:
raise Bob()
except Fred:
print "blah"
Как осуществляется сравнение Боба и Фреда?
Из-за того, что ты играешь вокруг, кажется, что это вызов ininstance внизу, это правильно?
Я спрашиваю, потому что я пытаюсь подорвать процесс, в частности, я хочу иметь возможность создать Боба таким образом, чтобы он был пойман исполняемым Фредом, даже если он на самом деле не является экземпляром Фреда или любого из его подклассов. .
Несколько человек спросили, почему я пытаюсь это сделать ...
У нас есть система RMI, которая построена на философии, заключающейся в том, чтобы сделать ее как можно более плавной, вот краткий пример ее использования, обратите внимание, что в системе RMI нет кода, специфичного для сокетов, сокеты просто предоставляют удобный пример.
import remobj
socket = remobj.RemObj("remote_server_name").getImport("socket")
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("", 0))
print "listening on port:", s.getsockname()[1]
s.settimeout(10)
try:
print "received:", s.recv(2048)
except socket.timeout:
print "timeout"
Теперь в этом конкретном примере исключение не работает должным образом, поскольку поднятый объект не является экземпляром socket.timeout, это экземпляр одного из наших вспомогательных прокси-классов.