Override Function Example
An which demonstrates a declarive function override.
This example demonstrates how to use the => operator to override a declarative function defined with the @d_func decorator.
Tip
To see this example in action, download it from
override_function
and run:
$ enaml-run override_function.enaml
Screenshot

Example Enaml Code
#------------------------------------------------------------------------------
# Copyright (c) 2015-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file LICENSE, distributed with this software.
#------------------------------------------------------------------------------
""" An which demonstrates a declarive function override.
This example demonstrates how to use the `=>` operator to override a
declarative function defined with the @d_func decorator.
<< autodoc-me >>
"""
from __future__ import print_function
from enaml.core.declarative import d_func
from enaml.widgets.api import Window, PushButton, Container
class MySpecialPushButton(PushButton):
""" A push button which has something to say.
"""
@d_func
def say_something(self, name):
msg = 'Hi, {}'
print(msg.format(name))
enamldef Main(Window):
attr name1 = 'John'
attr name2 = 'Jane'
Container:
MySpecialPushButton:
text = 'Say Hi'
clicked :: self.say_something(name1)
MySpecialPushButton:
text = 'Say Hello'
clicked :: self.say_something(name2)
say_something => (name):
print('Hello, '+ name)