Найти - Пользователи
Полная версия: выход из программы
Начало » Python для новичков » выход из программы
1 2
lome_kingar
есть конструкция try…except после except надо чтобы прога завершилась. как это сделать?

def f(val):
try:
a=input()
val+=int(a)
return val
except TypeError:
print('error')
#вот здесь хочу что бы прога завершилась

#код продолжается дальше
lavrton
import sys
sys.exit()
doza_and
логичнее raise - получите traceback с дополнительным пояснением причин падения
lome_kingar
спасибо!

doza_and, raise не пойдет….
Yurietc
doza_and
логичнее raise - получите traceback с дополнительным пояснением причин падения
Я бы так не делал - райс это падение, а не завершение.
лучше сделать так:
try:
...
except Ecxeption, e:
# logging e
sys.exit(1)
ненулевое значение укажет, что завершение было аварийным
можно потом возвращать различный код выхода в зависимости от типа исключения.
d1ffuz0r
можно ещё поюзать вот это http://docs.python.org/library/atexit.html
ZAN
atexit - это не то. Он нужен для вызова cleanup функции уже после того, как программа завершилась.
Кстати, можно делать raise SystemExit (аналог sys.exit)
Liu
а что делать, если нужно выполнять и выполнять модуль, до тех пор пока юзер не наиграется и на вопрос “выйти?” не ответит “Да”?
Пыталась так (mymodule запускается из модуля startmodule.py)

while 1:
import mymodule
ans = input('выйти?')
if ans='yes':
break
doza_and
import -> reload
py.user.next
Liu
а что делать, если нужно выполнять и выполнять модуль, до тех пор пока юзер не наиграется и на вопрос “выйти?” не ответит “Да”?
Пыталась так (mymodule запускается из модуля startmodule.py)
t.py
#!/usr/bin/env python3

import sys

ans = 'no'
while ans != 'yes':
try:
del sys.modules['mod']
except KeyError:
pass
import mod
ans = input('выйти? (yes/no) ')

print('Bye')
mod.py
print('Hello')
[guest@localhost tests]$ ./t.py
Hello
выйти? (yes/no) no
Hello
выйти? (yes/no) no
Hello
выйти? (yes/no) no
Hello
выйти? (yes/no) yes
Bye
[guest@localhost tests]$
в третьем питоне нет глобальной reload()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB