Раскрывающийся список, представляющий вызов метода в строке - PullRequest
0 голосов
/ 27 марта 2012

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

Я бы подумал использовать указатели / объекты функций в качестве модели выпадающего списка и вызвать ту, которая выбрана в настоящее время, но так как методы / будут

  1. строковые методы и
  2. равно не существует

как вы лучше подходите к этому в Python, также учитывая, что мне придется вызывать методы для имени столбца, например column.name.[selectedMethod](variableStringFromTextBox)?

(Это вариант, который в графическом интерфейсе гласит «Использовать XYZ, где имя столбца [равно или заканчивается с]» + текстовое поле с переменной строкой.)

Спасибо

1 Ответ

1 голос
/ 27 марта 2012

Если я правильно вас понимаю, раскрывающийся список содержит строки. Самый простой способ сделать это - определить подходящие методы, а затем использовать globals(). Например:

# check if string A ends with string B
def endswith(A, B):
   return A.endswith(B)

# check if string A equals to string B
def stringsequal(A, B):
   return A == B

Предположим, что строки - это A и B, а строка, содержащая имя функции, - S. Тогда

globals()[S](A, B)

Запустит функцию на A и B

globals() - это словарь, содержащий все глобальные функции, которые вы определили, отображая имена методов в объекты методов.

Вы также можете поддерживать собственный словарь, который сопоставляет имена методов с объектами методов.

...