Вы можете получить доступ к параметрам параметров одного значения с помощью ${param}
.
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
...
...
...
Обратите внимание, что JSTL fn:escapeXml()
необходим для предотвращения атак XSS. См. Также Предотвращение XSS в веб-приложении JSP / Servlet .
Вы можете получить доступ к параметрам запроса с несколькими значениями с помощью потоков ${paramValues}
и EL 3.0.
v == 'a').get() ? 'checked' : ''} />
v == 'b').get() ? 'checked' : ''} />
v == 'c').get() ? 'checked' : ''} />
...
inspect.ismethod
- это то, что вы хотите узнать, действительно ли у вас есть метод, а не просто то, что вы можете вызвать.
import inspect
def foo(): pass
class Test(object):
def method(self): pass
print inspect.ismethod(foo) # False
print inspect.ismethod(Test) # False
print inspect.ismethod(Test.method) # True
print inspect.ismethod(Test().method) # True
print callable(foo) # True
print callable(Test) # True
print callable(Test.method) # True
print callable(Test().method) # True
callable
истинно, если аргумент если аргумент - это метод, функция (включая лямбда
s), экземпляр с __ call __
или класс.
Свойства методов отличаются от свойств (например, im_class
и im_self
). Итак, вы хотите
assert inspect.ismethod(Test().method)
Если вы хотите узнать, является ли это точно методом экземпляра, используйте следующую функцию. (Он рассматривает методы, которые определены в метаклассе и доступны для методов класса, хотя их также можно рассматривать как методы экземпляра)
import types
def is_instance_method(obj):
"""Checks if an object is a bound method on an instance."""
if not isinstance(obj, types.MethodType):
return False # Not a method
if obj.im_self is None:
return False # Method is not bound
if issubclass(obj.im_class, type) or obj.im_class is types.ClassType:
return False # Method is a classmethod
return True
Обычно проверка на это плохая идея. Более гибкий способ использовать любые callable () взаимозаменяемо с методами.