Украсьте функцию двумя функциями - PullRequest
0 голосов
/ 27 марта 2020

Я хотел бы использовать декоратор для чтения с двумя функциями. Первая функция должна указать, хотим ли мы использовать «open (путь, имя файла)» или «z.open (путь, имя файла)», а другая - указать логи чтения c. Тем не менее, я знаю только, как украсить первую функцию, см. Ниже

def reader(func):

    def wrapper(*args,**kwargs):

        with func(*args,**kwargs) as f:

             reading_logic(f)

Нам нужно объявить

@reader
def file_reader(*args,**kwargs):
    return open(*args, **kwargs)

затем:

ext_file_content = file_reader("file.mix", 'r')

Однако я Также хотел бы украсить логи чтения c из "ридера". Так что это меняется в зависимости от формата файла, который я представляю. Спасибо

...