Search
 
SCRIPT & CODE EXAMPLE
 

PYTHON

class decorator python

# class decorators act in the same way as a function decorator
# but a class can maintain and update a state

class CountCalls:
    def __init__(self, func):       #class decorator __init__ takes func
        self.func = func
        self.num_calls = 0          #keep tract of how many times func got executed
    
    def __call__(self, *args, **kwargs):
        self.num_calls += 1
        print(f'This is executed {self.num_calls} times')
        return self.func(*args, **kwargs)
    
@CountCalls
def say_hello():
    print('Hello')
    
say_hello()
# This is executed 1 times
# Hello
say_hello()
# This is executed 2 times
# Hello
Comment

class decor python

# class decorator 
import random

# changes the properties of a function to a class instance
class Eliphant:
    def __init__(self,funct):
        self._funct = funct
        #all return values are storredin momory
        self._memory = []

    def __call__(self):
        returnvalue = self._funct()
        self._memory.append(returnvalue)
        return returnvalue

    def memory(self):
        return self._memory


@Eliphant

def random_odd():
    return random.choice([1,3,5,7,9])
print(random_odd())
print(random_odd.memory())
print(random_odd())
print(random_odd.memory())
Comment

class decorator python

# I dont know whether the term "class decorator" is referring to
# using decorators on a class or using a class as a decorator
# so heres both!

## Using a class as a decorator ##
class TestDecorator:

    # This is called when used, func is the function or class provided:
    def __init__(self, func): 
        def wrapper(message):
            print("Wrapper Calling: ", func(message))

        return wrapper

@TestDecorator
def abc(message):
    return message.upper()


## Using a decorator on a class ##
def TestDecorator(provided_class):
    print("Given class: ", provided_class)

    return provided_class

@TestDecorator
class abc: ... 
Comment

python decorator class method

# Here is an example from https://wiki.python.org/moin/PythonDecorators#Examples

@classmethod
def foo (arg1, arg2):
   ....
   
# https://wiki.python.org/moin/PythonDecoratorLibrary has more examples 
Comment

python decorator class

# Python program showing
# use of __call__() method
 
class MyDecorator:
    def __init__(self, function):
        self.function = function
     
    def __call__(self):
 
        # We can add some code
        # before function call
 
        self.function()
 
        # We can also add some code
        # after function call.
 
 
# adding class decorator to the function
@MyDecorator
def function():
    print("GeeksforGeeks")
 
function()
Comment

use decorator in class python

class Test(object):
    def _decorator(foo):
        def magic( self ) :
            print "start magic"
            foo( self )
            print "end magic"
        return magic

    @_decorator
    def bar( self ) :
        print "normal call"

test = Test()

test.bar()
Comment

PREVIOUS NEXT
Code Example
Python :: upload file setup django url 
Python :: python count the vowels 
Python :: python replace list from another dictionary items 
Python :: python print int operations 
Python :: time a function python 
Python :: len dictionary python 
Python :: python math exp 
Python :: mean squared error in machine learning formula 
Python :: how to import data in python 
Python :: django password hashing 
Python :: Python List count() example with numbers 
Python :: kaspersky 
Python :: add header info in django response 
Python :: simple python program for beginners 
Python :: how to read specific words from a file in python 
Python :: python random numbers 
Python :: slack notification pytthon 
Python :: Python NumPy ndarray flat function Syntax 
Python :: percentage plot of categorical variable in python woth hue 
Python :: numpy datatime to string 
Python :: python minimum 
Python :: if or python 
Python :: django create object from dict 
Python :: how to remove some indexes from a dataframe in python 
Python :: format datetime python pandas 
Python :: python logical operators code 
Python :: python transpose 
Python :: python string replace method 
Python :: k-means clustering 
Python :: import from parent directory in python setup 
ADD CONTENT
Topic
Content
Source link
Name
9+7 =