Возникли проблемы с переводом следующих двух спецификаций в код Python. Я нахожу терминологию странной для программы Python (бросить, поймать, содержимое исключения).
Первая спецификация гласит: «Если файл не может быть открыт, потому что он не существует, вы должны поймать объект FileNotFoundError и создать новое исключение FileNotFoundError с содержимым исключения, являющимся именем файла. Любое другое исключение для отказа от открытия не перехватывается. .имя файла отправляется в функцию.
Я перевел это как...
try:
f = open(filename)
except FileNotFoundError(filename):
raise FileNotFoundError(filename)
Я спрашиваю, как я уже сказал; терминология странная; например, «содержимое исключения является именем файла».
Кроме того, другая спецификация заключается в том, что если имя файла параметра не является строковым типом, то возникает исключение TypeError с содержимым исключения, представляющим собой строку «имя файла параметра не является строкой».
Опять "содержимое исключения"?
Мой перевод для этой спецификации...
x = isinstance(filename, (str))
if x == False:
raise TypeError('parameter filename is not a string')