Если вы хотите сделать небольшую взломанную вещь, сделайте
class A(object):
...
some_func(A)
. Если вы хотите сделать что-то более сложное, вы можете использовать метакласс. Метакласс отвечает за манипулирование объектом класса, прежде чем он будет полностью создан. Шаблон должен быть:
class AType(type):
def __new__(meta, name, bases, dct):
cls = super(AType, meta).__new__(meta, name, bases, dct)
some_func(cls)
return cls
class A(object):
__metaclass__ = AType
...
type
является метаклассом по умолчанию. Экземпляры метаклассов являются классами, поэтому __new__
возвращает модифицированный экземпляр (в данном случае) A
.
Подробнее о метаклассах см. В http://docs.python.org/reference /datamodel.html#customizing-class-creation.
Если вы хотите сопоставить только элементы с обоими классами (пересечение, например, логическое И), просто запишите селекторы вместе без пробелов в между:
$('.a.b')
Порядок не имеет значения, поэтому вы также можете поменять местами классы:
$('.b.a')
Итак, чтобы сопоставить элемент div
с идентификатором a
с классами ] b
и c
, вы должны написать:
$('div#a.b.c')
(На практике вам, скорее всего, не нужно указывать это конкретное, и обычно достаточно одного идентификатора или селектора класса: $ ('# a')
.)
Ваш код $(".a, .b")
будет работать на ниже нескольких элементов (в то же время)
<element class="a">
<element class="b">
, если Вы захотите выбрать элемент, имеющий a и b оба класса как <element class="a b">
, чем использование js без комы
$('.a.b')
Вы можете сделать это с помощью функции filter ()
:
$(".a").filter(".b")