Вау, код в твоем последнем редактировании потрясающий. Спасибо!
я есть класс, который имеет несколько методов, каждый из которых имеет определенные свойства (в смысле качества). Мне бы хотелось, чтобы эти методы были доступны в списке внутри класса, чтобы они могли выполняться сразу. Обратите внимание, что свойства могут быть взаимозаменяемыми, поэтому это не может быть решено с помощью дополнительных классов, которые наследуются от исходного. В идеальном мире это будет выглядеть примерно так:
class MyClass:
def __init__():
red_rules = set()
blue_rules = set()
hard_rules = set()
soft_rules = set()
@red
def rule_one(self):
return 1
@blue
@hard
def rule_two(self):
return 2
@hard
def rule_three(self):
return 3
@blue
@soft
def rule_four(self):
return 4
Когда создается экземпляр класса, должно быть легко выполнить все красные и мягкие правила, комбинируя наборы и выполняя методы. Декораторы для этого сложны, поскольку обычный регистратор может заполнить глобальный объект, но не атрибут class:
def red(fn):
red_rules.add(fn)
return fn
Как мне реализовать что-то подобное?