Ошибка типа: объект 'str' не вызывается 1

Отказ от ответственности: используйте парсер, если у вас есть опция. Тем не менее ...

Это регулярное выражение, которое я использую (!) Для соответствия тэгам HTML:

<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>

Это может быть не идеально, но я запустил этот код через lot HTML. Обратите внимание, что он даже ловит странные вещи, такие как , которые появляются в Интернете.

Думаю, чтобы он не соответствовал самодостаточным тегам, вы либо захотите использовать Kobi :

<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+(?

или просто объединить, если и если нет.

To downvoters: Это рабочий код из реального продукта. Я сомневаюсь, что кто-либо читает эту страницу, создается впечатление, что социально приемлемо использовать регулярные выражения для HTML.

Предостережение. Я должен заметить, что это регулярное выражение все еще ломается при наличии блоков CD87, комментариев и элементов сценария и стиля. Хорошая новость заключается в том, что вы можете избавиться от тех, кто использует регулярное выражение ...

-4
задан BoarGules 17 January 2019 в 15:47
поделиться

2 ответа

Если интерпретация, которую я дал в своем комментарии, верна, один из способов разрешить пользователю вызывать функции, которые вы определяете, - поместить эти функции в словарь с указанием их имени. Затем вы можете проверить этот дикт, чтобы увидеть, принадлежит ли ему i, и вызвать функцию, если это необходимо.

def buclick():
    i = ent.get()
    if i in user_callable_functions:
        user_callable_functions[i]()
    else:
        messagebox.showinfo("Error", "There is no product with this name")

#put this just above root.mainloop()
user_callable_functions = {
    "ic5501": ic5501,
    "ic5502": ic5502
}
0
ответ дан Kevin 17 January 2019 в 15:47
поделиться

Из информации, которую вы нам дали, кажется, что в строке 22, где вы пытаетесь if i == i(), вы пытаетесь проверить, соответствует ли переменная i возвращаемому значению функции i (). Мне кажется, что у вас нигде нет функции i () (и в любом случае это будет плохое имя для функции). Может быть, вы пытаетесь проверить if i == result, где result - это переменная ic5501 или ic5502? Поправь меня, если я ошибаюсь.

РЕДАКТИРОВАТЬ

После проверки комментариев, если вы пытаетесь проверить, является ли я именем функции, я бы рекомендовал в качестве базового начала (в зависимости от того, является ли это большой проект) создание списка со всеми именами функций и связывание их с функцией.

my_functions = [["function_1", function_1], ["function_2", function_2]]

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

вызов списка функций с использованием понимания списка

0
ответ дан Max Michel 17 January 2019 в 15:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: