Динамический выбор переменной - PullRequest
0 голосов
/ 25 сентября 2019

Я пишу автоматизацию для общей формы, в которой я не уверен, какие данные я могу получить. Пример Я не уверен, сколько переменных я могу получить ...?подумайте, я могу получить 13 переменных ... Как разместить эти переменные в моем коде Python ...?Да, я могу написать код для этого, если он всегда один и тот же ...?Что делать, если я получу только 5 переменных в следующий раз.Мне нужен код для этой части ... чтобы остальная часть кода работала на основе этих 5 переменных или того, что когда-либо было выбрано изначально: либо 5, либо 13 динамическая часть.

Ответы [ 3 ]

0 голосов
/ 25 сентября 2019

Python позволяет вам принимать переменное количество аргументов в любую функцию, используя:

def foo(*args):
    for arg in args:
        print(arg)

Если вам нужно, чтобы аргументы имели имена, передайте их как аргументы ключевого слова:

def foo(*args, **kwargs):
    for arg in args:
        print(arg)
    for name, value in kwargs.items():
        print(name, value)
0 голосов
/ 25 сентября 2019

Так что, если я получу 3variable по GET-вызову

для однофамильцев, это те переменные, которые вы получите

result_of_get=["something","something","anotherthing"] 
dynamic_vars={}

, теперь переходите к каждому элементу и сохраняйте его в dict

for var in range(len(result_of_get)):
    dynamic_vars[var]=result_of_get[var]

print(dynamic_vars)
0 голосов
/ 25 сентября 2019

Вы можете использовать *args и **kwargs:

inp = input("Enter strings: ").split()

def do_something(*args):
    # if you want to operate on each element individually
    for arg in args:
        if arg == arg[::-1]:
            print(arg,'is palindrome')
        else:
            print(arg,'is not a palindrome')
    # if you want to use the entire list
    print(max(args))
do_something(*inp)

Выход:

Enter strings: ada python c C++
ada is palindrome
python is not a palindrome
c is palindrome
C++ is not a palindrome
python
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...