Вывести все переданные аргументы ключевого слова независимо от того, какой ключ - PullRequest
0 голосов
/ 21 января 2020

"Привет - пользователь Fairly rook ie Python и пытался выполнить некоторые упражнения в Python 3.1 .. Мне удалось написать функцию, принимающую LastName, Country в качестве параметров и использующую **kwargs для отображения значения, переданные для state, salary, taxrate et c.

Однако, в качестве продолжения я пытаюсь отобразить аргументы ключевого слова независимо от ключа - вот где я получаю застрял.

Ищем только ключевые аргументы для отображения, а не переданные значения

def myfunction(LastName, Country,**kwargs):
    print('Name:',LastName)
    print(Country)
    result = ""
    for arg in kwargs:
        result = arg
    return result
def main():
    myfunction('Smith','USA',state="NV",salary="55k",taxrate='2.00')
if __name__ == '__main__':
    main()

Я ищу такой вывод:

Smith
USA
State   
Salary
Taxrate

Ответы [ 2 ]

1 голос
/ 21 января 2020

Для всех намерений и целей kwargs является диктатом. Вы можете относиться к нему так:

def myfunction(last_name, country, **kwargs):
    print('name =', last_name)
    print('country =', country)
    for key, value in kwargs.items():
        print(key, '=', value)
>>> myfunction('Smith', 'USA', state="NV", salary="55k", taxrate='2.00')
name = Smith
country = USA
state = NV
salary = 55k
taxrate = 2.00
0 голосов
/ 21 января 2020

Если я правильно интерпретирую ваш вопрос, вы можете попробовать этот код:

# Returns a list in your desired format
def func(lastName, country, **kwargs):
    ret = [lastName, country]
    for key in kwargs:
        ret.append(key.capitalize())

    return ret

# Print
for i in func("", "", ...):
    print(i)

Он в основном создает базовый список, к которому он затем добавляет ключи kwargs. Как видите, kwargs - это диктат, и его можно использовать как одно

Напоминание: вам следует перейти на самую новую версию Python (3.8.1), которую можно загрузить здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...