Я также предпочитаю CSS, а не HTML; HTML о содержании, CSS о представлении.
С помощью CSS у вас есть три варианта.
Пример использования внутренней таблицы стилей:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Image with border</title>
<style type="text/css">
img.hasBorder { border:15px solid #66CC33; }
</style>
</head>
<body>
<img class="hasBorder" src="peggy.jpg" alt="" />
</body>
</html>
Если вы хотите внешнюю таблицу стилей, замените < style > ... < / style > блок с
<link rel="stylesheet" type="text/css" href="somestylesheet.css" />
sys.exit () raises исключение SystemExit, как и thread.exit (). Итак, когда sys.exit () вызывает это исключение внутри этого потока, он имеет тот же эффект, что и вызов thread.exit (), поэтому завершается только поток.
Вас беспокоит тот факт, что печатается «pre main exit, post thread exit»?
В отличие от некоторых других языков (например, Java), где аналог sys.exit
( System.exit
, в случае Java) вызывает немедленную остановку виртуальной машины / процесса / интерпретатора, Python sys.exit
просто выдает исключение: в частности, исключение SystemExit.
Вот документы для sys.exit
(просто print sys.exit .__ doc __
):
Выйдите из интерпретатора, подняв SystemExit (status).
Если статус не указан или отсутствует, по умолчанию он равен нулю (т. Е. Успешно).
Если статус числовой, он будет использоваться как статус выхода из системы.
Если это объект другого типа, он будет напечатан и система
статус выхода будет единичным (то есть сбой).
Это имеет несколько последствий:
__ del __
) потенциально вызываются, когда кадры стека, которые ссылаются на эти объекты, разматываются SystemExit
exception Последнее, пожалуй, самое удивительное, и это еще одна причина, по которой вы почти никогда не должны иметь неквалифицированный оператор except
в вашем коде Python.
Что делать, если я действительно хочу выйти из программы из потока (не то чтобы я на самом деле хотите, но насколько я понимаю)?
Мой предпочтительный метод - передача сообщений в стиле Erlang. Слегка упрощенно, я делаю это так:
import sys, time
import threading
import Queue # thread-safe
class CleanExit:
pass
ipq = Queue.Queue()
def testexit(ipq):
time.sleep(5)
ipq.put(CleanExit)
return
threading.Thread(target=testexit, args=(ipq,)).start()
while True:
print "Working..."
time.sleep(1)
try:
if ipq.get_nowait() == CleanExit:
sys.exit()
except Queue.Empty:
pass