Создание следующего кода Python 2-совместимого так же просто, как удаление возврата в конце определения функции (-> None
).
import csv
fieldnames = ['this', 'is', 'unimportant', 'spam', 'eggs']
def create_log_file(fname) -> None:
""" If log file exists, does nothing, else creates log file
Arguments:
fname {str} -- The name of the log file
"""
try:
f = open(fname, "r")
f.close()
except IOError:
with open(fname, "w") as f:
writer = csv.DictWriter(f, fieldnames)
writer.writeheader()
Желательно ли сделать его обратно совместимым, или мы должны быть более точными, когда это возможно, поскольку Python 3 позволяет нам (в таком случае я также могу удалить часть IOError or
)?
Или "Python 2 совместимость" против "Явного лучше, чем неявного", просто вопрос личных предпочтений?