Какие-либо PEP определяют, должен ли новый код быть Python 2 совместимым? - PullRequest
0 голосов
/ 06 апреля 2020

Создание следующего кода 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 совместимость" против "Явного лучше, чем неявного", просто вопрос личных предпочтений?

...