Как создать пользовательскую функцию со списком Python? - PullRequest
0 голосов
/ 18 июня 2020

Это часть кода, которую я хочу упаковать в функцию. Я устал от этого. он ДОЛЖЕН оставаться таким.

Я получил ошибку

  File "/usr/local/Cellar/python@3.8/3.8.3/Frameworks/Python.framework/Versions/3.8/lib/python3.8/posixpath.py", line 54, in normcase
    return os.fspath(s)
TypeError: expected str, bytes or os.PathLike object, not list

1 Ответ

1 голос
/ 18 июня 2020

Вы можете использовать * с вашим параметром, который будет перехватывать любые переданные аргументы в кортеже:

def f(*filenames):
    # filenames is a tuple with all your arguments and you can iteratore over
    print(type(filenames)) # prints <class 'tuple'>
    for arg in args:
       pass # do something here

Если вам также нужен позиционный аргумент (писатель в вашем случае), он должен быть помещен первым параметр:

def f(writer, *filenames):
    print(writer)
    print(len(filenames)) # will be zero if only a writer is passed
    print(type(filenames))

В вашем случае достаточно использовать:

def mm(filenames): # you can pass anything that is iterable (list, tuples, strings, ...)
    for file in filenames:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...