>>> from functools import partial >>> bound_func = partial(range, 0, 10) >>> bound_func() [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> bound_func(2) [0, 2, 4, 6, 8]
не действительно скрытая функция, но неравнодушный чрезвычайно полезна для того, чтобы иметь поздно оценку функций.
можно связать столько или так мало параметров в начальном вызове частичного Вы хотите и называете его с любыми остающимися параметрами позже (в этом примере, я обязал начинание/заканчивание args располагаться, но назвать его вторым разом с аргументом шага)
См. документация .
В версии 3.0 можно сократить до:
MyHandler myDelegate = ()=>Console.WriteLine("I did it!");
MyEvent += myDelegate;
...
MyEvent -= myDelegate;
Если вы хотите иметь возможность контролировать отказ от подписки, вам нужно пойти по маршруту, указанному в вашем принятом ответе. Однако, если вас просто беспокоит очистка ссылок, когда ваш класс подписки выходит за пределы области видимости, тогда есть другое (слегка запутанное) решение, которое включает использование слабых ссылок. Я только что опубликовал вопрос и ответ по этой теме.