2015-04-22 4 views
-2

Простите этот довольно простой вопрос Python, но у меня буквально есть очень мало опыта на Python. Я создать базовый сценарий Python для использования с Коди:Размещение переменной Python inline

http://kodi.wiki/view/List_of_built-in_functions

Пример код:

import kodi 

variable = "The value to use in PlayMedia" 

kodi.executebuiltin("PlayMedia(variable)") 
kodi.executebuiltin("PlayerControl(RepeatAll)") 

Вместо непосредственного предоставления строкового значения для функции PlayMedia, я хочу передать переменный как значение вместо этого. Идея другого процесса может изменить значение переменной с помощью sed, поэтому она не может быть статичной.

Действительно простой, но может ли кто-нибудь указать мне в правильном направлении?

+0

Вы хотите вызвать функцию, но у вас есть имя функции как строка? –

+0

Функция PlayMedia принимает строковое значение, я хочу иметь переменную как значение, которое уже установлено на что-то. –

+0

Угадайте, я думал, что это сработает? kodi.executebuiltin («PlayMedia (« playlistpath »)») –

ответ

1

Это простой случай string formatting.

template = "{}({})" 
functionName = "function" # e.g. input from user 
arg = "arg" # e.g. input from user 
formatted = template.format(functionName, arg) 
assert formatted == "function(arg)" 
kodi.executebuiltin(formatted) 
+0

Кажется, это то, за чем я буду. Извиняюсь, если мой первоначальный вопрос был расплывчатым. –

+0

Еще раз, [MCVE] (http://stackoverflow.com/help/mcve) является вашим другом на будущее. –

0

ОК, насколько я понимаю, вам нужно определить переменную, значение которой может быть изменено позже, поэтому первая часть проще, определение переменной в python так же просто, как new_song = "tiffny_avlord_I_love_u", аналогично вы можете определить другую строку как new_video = "Bohemia_on_my_feet", следует иметь в виду, что при определении переменных в виде строк вам необходимо инкапсулировать всю строку внутри двойных котировок "..." (Однако одинарные кавычки также работают нормально)

Теперь проблема в том, как обновить ее ценность , самый простой способ - принять ввод от самого пользователя, который может быть выполнен с использованием raw_input():

new_song = raw_input("Please enter name of a valid song: ") 
print "The new song is : "+new_song 

Теперь любой пользователь входит на консоль будет храниться в переменной new_song, и вы можете использовать эту переменную, и передать его в любой функции, как

some_function(new_song) 

Попробуйте выполнить эту строку, и вы поймете, как это работает.

+0

Понял. В этом случае мне нужно будет поместить значение new_song inline в функции kodi.executebuiltin. Каков наилучший способ сделать это? –

Смежные вопросы